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 相关文章推荐
浅谈angularJS 作用域
Jul 05 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
May 26 Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 Javascript
JavaScript自定义分页样式
Jan 17 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
NW.js 简介与使用方法
Feb 01 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
Apr 20 Javascript
vue的for循环使用方法
Feb 12 Javascript
jquery分页优化操作实例分析
Aug 23 jQuery
React如何创建组件
Jun 27 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
php中防止伪造跨站请求的小招式
2011/09/02 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
DOM精简教程
2006/10/03 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
python解析xml文件实例分享
2013/12/04 Python
Python中apply函数的用法实例教程
2014/07/31 Python
python中黄金分割法实现方法
2015/05/06 Python
python实现随机漫步方法和原理
2019/06/10 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
上海期货面试题
2014/01/31 面试题
单位个人查摆问题及整改措施
2014/10/28 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
海弦WR-800F
2022/04/05 无线电
Web应用开发TypeScript使用详解
2022/05/25 Javascript