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自动显示最后更新时间
Mar 15 Javascript
javascript代码编写需要注意的7个小细节小结
Sep 21 Javascript
js中 关于undefined和null的区别介绍
Apr 16 Javascript
vue component组件使用方法详解
Jul 14 Javascript
js实现省市级联效果分享
Aug 10 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
Vue基本使用之对象提供的属性功能
Apr 30 Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 Javascript
javascript实现超好看的3D烟花特效
Jan 01 Javascript
JS图片懒加载的优点及实现原理
Jan 10 Javascript
原生JavaScript实现刮刮乐
Sep 29 Javascript
微信小程序入门之指南针
Oct 22 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 变量类型的强制转换
2009/10/23 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
JavaScript实用技巧(一)
2010/08/16 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
python thread 并发且顺序运行示例
2009/04/09 Python
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
python实现FTP服务器服务的方法
2017/04/11 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Python向excel中写入数据的方法
2019/05/05 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
python求前n个阶乘的和实例
2020/04/02 Python
python中turtle库的简单使用教程
2020/11/11 Python
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
校园安全主题班会
2015/08/12 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
python如何进行基准测试
2021/04/26 Python
Python编程中Python与GIL互斥锁关系作用分析
2021/09/15 Python