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 相关文章推荐
JQuery选择器特辑 详细小结
May 14 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
javascript实现获取图片大小及图片等比缩放的方法
Nov 24 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
Bootstrap导航中表单简单实现代码
Mar 06 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
Jul 11 Javascript
vue二级路由设置方法
Feb 09 Javascript
基于JavaScript获取base64图片大小
Oct 18 Javascript
使用vue实现一个电子签名组件的示例代码
Jan 06 Javascript
vue中的v-model原理,与组件自定义v-model详解
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
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
Node.js简单入门前传
2017/08/21 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
python实现黑客字幕雨效果
2018/06/21 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Python中zip函数如何使用
2020/06/04 Python
用python进行视频剪辑
2020/11/02 Python
学生实习介绍信
2014/01/15 职场文书
党员承诺书格式
2014/05/21 职场文书
水电工岗位职责
2015/02/14 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫