如何获取 NodeJS 应用程序中正在执行的脚本的文件名?
问问题
24929 次
3 回答
54
您可以使用变量__filename
http://nodejs.org/docs/latest/api/globals.html#globals_filename
于 2012-12-11T21:48:32.827 回答
25
使用模块的basename
方法path
:
var path = require('path');
var filename = path.basename(__filename);
console.log(filename);
这是上面示例的文档。
正如 Dan 指出的,Node 正在开发带有“--experimental-modules”标志的ECMAScript 模块。节点 12 仍然支持__dirname
和__filename
同上。
如果您使用--experimental-modules
标志,则有另一种方法。
另一种方法是获取当前 ES 模块的路径:
const __filename = new URL(import.meta.url).pathname;
对于包含当前模块的目录:
import path from 'path';
const __dirname = path.dirname(new URL(import.meta.url).pathname);
于 2015-06-11T21:27:20.933 回答
22
你需要使用process.argv
. 其中将包含从命令行执行的脚本的名称,该名称可能与您在__filename
. 哪个合适取决于您的需求。
http://nodejs.org/docs/latest/api/process.html#process_process_argv
于 2012-12-11T21:48:51.667 回答