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 相关文章推荐
DOM相关内容速查手册
Feb 07 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
Feb 05 Javascript
jquery easyui滚动条部分设置介绍
Sep 12 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 Javascript
ExtJS[Desktop]实现图标换行示例代码
Nov 17 Javascript
模拟一个类似百度google的模糊搜索下拉列表
Apr 15 Javascript
jQuery表格插件datatables用法详解
Nov 23 Javascript
Javascript实现图片不间断滚动的代码
Jun 22 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
Oct 17 Javascript
JS中微信小程序自定义底部弹出框
Dec 22 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
js 动态生成html 触发事件传参字符转义的实例
Feb 14 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
React快速入门教程
2017/01/17 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
python实现录音小程序
2020/10/26 Python
Django 限制访问频率的思路详解
2019/12/24 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
python 日志 logging模块详细解析
2020/03/31 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
毕业生就业推荐表自我评价
2015/03/02 职场文书
员工福利申请报告
2015/05/15 职场文书
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL
Python实现数据的序列化操作详解
2022/07/07 Python