node.js使用fs读取文件出错的解决方案


Posted in Javascript onOctober 23, 2019

今天配接口,使用fs模块读取json出现了错误'no such file or directory',然后经查终于解决,特此记录。

使用nodejs的fs模块读取文件时习惯用相对路径,但是运行的时候出现了上述的错误,原因就是fs模块读取文件的相对路径是以启动server.js的位置为基准的,而不是以server.js文件的位置。
这就是这篇文章所要讲述的问题。并且nodejs官方推荐在使用fs模块读取文件时使用绝对路径,而不是相对路径。

但是写绝对路径又有些许麻烦,那该如何解决呢,参考以下代码就可以啦:

var fs = require('fs');
let path = require('path');
let PUBLIC_PATH = path.resolve(__dirname, 'xx.json');

fs.readFile(PUBLIC_PATH, 'utf8', function (err, data) {
 if (err) console.log(err);
 
});

补充:

在fs模块中,提供同步方法是为了方便使用。那我们到底是应该用异步方法还是同步方法呢?

由于Node环境执行的JavaScript代码是服务器端代码,所以,绝大部分需要在服务器运行期反复执行业务逻辑的代码,必须使用异步代码,否则,同步代码在执行时期,服务器将停止响应,因为JavaScript只有一个执行线程。

服务器启动时如果需要读取配置文件,或者结束时需要写入到状态文件时,可以使用同步代码,因为这些代码只在启动和结束时执行一次,不影响服务器正常运行时的异步执行。

以上就是本次介绍的全部相关知识点,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
javascript编程起步(第一课)
Jan 10 Javascript
一段多浏览器的"复制到剪贴板"javascript代码
Mar 27 Javascript
JavaScript中提前声明变量或函数例子
Nov 12 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
Aug 25 Javascript
详解JavaScript函数
Dec 01 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
May 03 Javascript
JS实现图片预览的两种方式
Jun 27 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 Javascript
vue小白入门教程
Apr 02 Javascript
详解Element-UI中上传的文件前端处理
Aug 07 Javascript
uniapp开发小程序的经验总结
Apr 08 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
Oct 23 #jQuery
JavaScript提升机制Hoisting详解
Oct 23 #Javascript
使用p5.js实现动态GIF图片临摹重现
Oct 23 #Javascript
p5.js临摹动态图形的方法
Oct 23 #Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
Oct 23 #Javascript
p5.js实现动态图形临摹
Oct 23 #Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
Oct 23 #Javascript
You might like
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
pyhton列表转换为数组的实例
2018/04/04 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
Python bytes string相互转换过程解析
2020/03/05 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
运动会通讯稿400字
2014/01/28 职场文书
销售类求职信
2014/06/13 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
上级领导检查欢迎词
2015/09/30 职场文书