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")
和文件abc
在ExpressApp1/
这是节点解释器从哪里开始的目录(又名当前工作目录),而不是脚本文件夹位置的目录(谢谢你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