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树插件zTree用法入门教程
Feb 17 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
B/S(Web)实时通讯解决方案分享
Apr 06 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
使用Vue制作图片轮播组件思路详解
Mar 21 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
Dec 09 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
May 09 Javascript
微信小程序获取用户绑定手机号方法示例
Jul 21 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
Feb 12 Javascript
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
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 Smarty初体验二 获取配置信息
2011/08/08 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
PHP实现图片压缩
2020/09/09 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
如何验证python安装成功
2020/07/06 Python
python 如何调用远程接口
2020/09/11 Python
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
师范毕业生自荐信
2013/10/17 职场文书
大学生专科学习生活的自我评价
2013/12/07 职场文书
公积金转移接收函
2014/01/11 职场文书
九年级化学教学反思
2014/01/28 职场文书
市场营销策划方案
2014/06/11 职场文书
工地标语大全
2014/06/18 职场文书
标准版离职证明书
2014/09/12 职场文书
医院护士工作检讨书
2014/10/26 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
python脚本框架webpy的url映射详解
2021/11/20 Python
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA