node.js使用fs读取文件出错的解决方案
程序员文章站
2022-04-06 13:21:44
今天配接口,使用fs模块读取json出现了错误'no such file or directory',然后经查终于解决,特此记录。
使用nodejs的fs模块读取文件时习惯用相对路径...
今天配接口,使用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只有一个执行线程。
服务器启动时如果需要读取配置文件,或者结束时需要写入到状态文件时,可以使用同步代码,因为这些代码只在启动和结束时执行一次,不影响服务器正常运行时的异步执行。
以上就是本次介绍的全部相关知识点,感谢大家的学习和对的支持。
上一篇: NodeJS实现一个聊天室功能
推荐阅读
-
Nodejs读取文件时相对路径的正确写法(使用fs模块)
-
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
-
Node.js中文件系统fs模块的使用及常用接口
-
使用JS操作文件(FileReader读取--node的fs)
-
node.js中fs文件系统模块的使用方法实例详解
-
VsCode C++使用相对路径读取文件失败的原因及解决方案
-
使用PostgreSQL的bytea字段存读取文件及读取出错问题处理_PHP教程
-
使用PostgreSQL的bytea字段存读取文件及读取出错问题处理
-
[JAVA IDEA]在使用maven项目中,无法读取resources文件夹中的配置文件的一种解决方案
-
Node.js中文件系统fs模块的使用及常用接口