如何在Node.js中获取“程序名称”(调用位置)?

时间:2013-05-08 07:37:03

标签: node.js command-line

对于Node.js,我希望在Ruby中使用$ PROGRAM_NAME,或在C-likes中使用ARGV [0]。当我有一个类似于此的Node脚本时,

#!/usr/bin/env node
console.log(process.argv[0])

...我得到“节点”而不是保存代码的文件的名称。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

你可以使用它(如果从你的main.js文件调用):

var path = require('path');
var programName = path.basename(__filename);

或者这个,任何地方:

var path = require('path');
var programName = path.basename(process.argv[1]);

答案 1 :(得分:1)

使用__filename?它返回当前正在执行的脚本。

http://nodejs.org/docs/latest/api/globals.html#globals_filename

答案 2 :(得分:-1)

要使用命令行选项字符串,请通过Substack检查optimist模块。乐观主义者会让你的生活更轻松。

var inspect = require('eyespect').inspector();
var optimist = require('optimist')
var path = require('path');
var argv = optimist.argv
inspect(argv, 'argv')
var programName = path.basename(__filename);
inspect(programName, 'programName')

安装所需的依赖项:

npm install -S eyespect optimist