1

对于 Node.js,我想要 Ruby 中的 $PROGRAM_NAME 或 C-likes 中的 ARGV[0] 等价物。当我有一个看起来像这样的节点脚本时,

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

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

4

3 回答 3

3

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

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

或者这个,任何地方:

var path = require('path');
var programName = path.basename(process.argv[1]);
于 2013-05-08T07:42:40.127 回答
1

使用__文件名?它返回当前正在执行的脚本。

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

于 2013-05-08T07:41:42.927 回答
-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
于 2013-05-08T14:37:01.497 回答