我如何获得 Node.js 中脚本的路径?
我知道有process.cwd
,但这只是指调用脚本的目录,而不是脚本本身。例如,假设我在/home/kyle/
运行以下命令:
node /home/kyle/some/dir/file.js
如果我调用process.cwd()
,我得到/home/kyle/
,而不是/home/kyle/some/dir/
。有办法获得该目录吗?
我再次查看了文档后找到了它。我要找的是__filename
和__dirname
模块级变量。
__filename
是当前模块的文件名。这是当前模块文件的已解析绝对路径。 (例如: /home/kyle/some/dir/file.js
) __dirname
是当前模块的目录名称。 (例如: /home/kyle/some/dir
) 所以基本上你可以这样做:
fs.readFile(path.resolve(__dirname, 'settings.json'), 'UTF-8', callback);
使用 resolve()而不是与 '/' 或 '\' 连接,否则您将遇到跨平台问题。
注意:__ dirname 是模块或包含脚本的本地路径。如果您正在编写一个需要知道主脚本路径的插件,那么:
require.main.filename
或者,只是获取文件夹名称:
require('path').dirname(require.main.filename)
此命令返回当前目录:
var currentPath = process.cwd();
例如,要使用路径来读取文件:
var fs = require('fs');
fs.readFile(process.cwd() + "\\text.txt", function(err, data)
{
if(err)
console.log(err)
else
console.log(data.toString());
});