对于Node.js,我希望在Ruby中使用$ PROGRAM_NAME,或在C-likes中使用ARGV [0]。当我有一个类似于此的Node脚本时,
#!/usr/bin/env node
console.log(process.argv[0])
...我得到“节点”而不是保存代码的文件的名称。我该如何解决这个问题?
答案 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