我有一个用Node.js编写的 Web 服务器,我想用特定的文件夹启动。我不确定如何在 JavaScript 中访问参数。我正在运行这样的节点:
$ node server.js folder
这里server.js
是我的服务器代码。 Node.js 帮助说这是可能的:
$ node -h
Usage: node [options] script.js [arguments]
我如何在 JavaScript 中访问这些参数?不知何故,我无法在网上找到这些信息。
参数存储在process.argv
process.argv
是一个包含命令行参数的数组。第一个元素是'node',第二个元素是 JavaScript 文件的名称。下一个元素将是任何其他命令行参数。
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
这将产生:
$ node process-2.js one two=three four
0: node
1: /Users/mjr/work/node/process-2.js
2: one
3: two=three
4: four
要像普通的 javascript 函数那样规范化参数,我会在 node.js shell 脚本中执行此操作:
var args = process.argv.slice(2);
请注意,第一个 arg 通常是 nodejs 的路径,第二个 arg 是您正在执行的脚本的位置。
最新的正确答案,它使用最小的库。我们过去常常使用node-optimist,但后来不推荐使用它。
以下是直接从最小化文档中使用它的示例:
var argv = require('minimist')(process.argv.slice(2));
console.dir(argv);
-
$ node example/parse.js -a beep -b boop
{ _: [], a: 'beep', b: 'boop' }
-
$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
{ _: [ 'foo', 'bar', 'baz' ],
x: 3,
y: 4,
n: 5,
a: true,
b: true,
c: true,
beep: 'boop' }