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
浅谈Javascript变量作用域问题
Dec 16 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
Aug 10 Javascript
ANGULARJS中使用JQUERY分页控件
Sep 16 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
Mar 23 jQuery
Angular使用cli生成自定义文件、组件的方法
Sep 04 Javascript
vue单页缓存存在的问题及解决方案(小结)
Sep 25 Javascript
说说如何在Vue.js中实现数字输入组件的方法
Jan 08 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 jQuery
js实现简易拖拽的示例
Oct 26 Javascript
详解Vue中的自定义指令
Dec 07 Vue.js
node koa2 ssr项目搭建的方法步骤
Dec 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
python 动态加载的实现方法
2017/12/22 Python
详解Python文件修改的两种方式
2019/08/22 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
Python 如何批量更新已安装的库
2020/05/26 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
毕业生自我鉴定范文
2013/11/08 职场文书
优秀生推荐信范文
2013/11/28 职场文书
远程教育心得体会
2014/01/03 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
经典婚礼主持词
2014/03/13 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
公司聘任书模板
2014/03/29 职场文书
装修活动策划方案
2014/08/27 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技