fs模块函数使用的当前目录是什么?

在典型的node.js / Express应用程序中调用fs模块中的方法时,当前目录是什么? 例如:

 var fs = require('fs'); var data = fs.readFile("abc.jpg", "binary"); 

什么是用于定位abc.jpg的默认文件夹? 它依赖于包含脚本的文件夹位置?

有没有一种方法来查询当前目录?


我的文件结构是:

 ExpressApp1/ app.js routes/ members.js 

在members.js中我有一个fs.createWriteStream("abc")和文件abcExpressApp1/

这是节点解释器从哪里开始的目录(又名当前工作目录),而不是脚本文件夹位置的目录(谢谢你robertklep)。

另外,当前工作目录可以通过以下方式获得:

 process.cwd() 

有关更多信息,可以查看: https : //nodejs.org/api/fs.html

编辑:因为你通过ExpressApp1目录node app.js启动app.js,每个相对path将相对于“ExpressApp1”文件夹,这就是为什么fs.createWriteStream("abc")将创build写入stream写入到文件ExpressApp1/abc 。 如果要写入ExpressApp1/routes/abc ,则可以将members.js的代码更改为:

 fs.createWriteStream(path.join(__dirname, "abc")); 

更多:

https://nodejs.org/docs/latest/api/globals.html#globals_dirname

https://nodejs.org/docs/latest/api/path.html#path_path_join_paths