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闭包 新手版
Dec 28 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 Javascript
javascript 构造函数方式定义对象
Jan 02 Javascript
JavaScript获得指定对象大小的方法
Jul 01 Javascript
浅析JS运动
Dec 28 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
May 05 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
Oct 18 Javascript
vscode 开发Vue项目的方法步骤
Nov 25 Javascript
vue v-for 使用问题整理小结
Aug 04 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
加速XP搜索功能堪比vista
2007/03/22 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
js局部刷新页面时间具体实现
2013/07/04 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python实时监控cpu小工具
2018/06/21 Python
python队列Queue的详解
2019/05/10 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
python判断变量是否为列表的方法
2020/09/17 Python
运行Python编写的程序方法实例
2020/10/21 Python
python基于win32api实现键盘输入
2020/12/09 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
党代会心得体会
2014/09/04 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
DSP接收机前端设想
2022/04/05 无线电
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers