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 特殊字符
Apr 05 Javascript
JS 的应用开发初探(mootools)
Dec 19 Javascript
JavaScript 判断日期格式是否正确的实现代码
Jul 04 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
Dec 31 Javascript
Javascript 遍历页面text控件详解
Jan 06 Javascript
JavaScript中的无阻塞加载性能优化方案
Oct 10 Javascript
JS版微信6.0分享接口用法分析
Oct 13 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
解决vue v-for 遍历循环时key值报错的问题
Sep 06 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
Sep 21 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
Feb 13 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安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
定义select的边框颜色
2008/04/28 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
python 爬取疫情数据的源码
2020/02/09 Python
了解一下python内建模块collections
2020/09/07 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
国际贸易系求职信
2014/08/09 职场文书
共青团员自我评价范文
2014/09/14 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
学生检讨书范文
2015/01/27 职场文书
中国世界遗产导游词
2015/02/13 职场文书
廉洁自律证明
2015/06/24 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers