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中比较字符串是否相等的方法
Jul 23 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
node.js中的buffer.toJSON方法使用说明
Dec 14 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
Sep 27 Javascript
Vue数据绑定实例写法
Aug 06 Javascript
JS实现骰子3D旋转效果
Oct 24 Javascript
5个你不知道的JavaScript字符串处理库(小结)
Jun 01 Javascript
完美解决vue 中多个echarts图表自适应的问题
Jul 19 Javascript
请求时token过期自动刷新token操作
Sep 11 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禁止浏览器使用缓存页面的方法
2014/11/07 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
详解Angular 4 表单快速入门
2017/06/05 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python3使用requests发闪存的方法
2016/05/11 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
斯巴达比赛商店:Spartan Race
2019/01/08 全球购物
校园歌咏比赛主持词
2014/03/18 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS