如何将命令行参数传递给nodejs程序?
我有一个用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);
请注意,第一个参数通常是nodejs的路径,第二个参数是您正在执行的脚本的位置。
最新的正确答案为它使用最小化库。 我们过去使用节点乐观主义者,但它已被弃用。
下面是一个如何使用它从最小化文档直接获取的例子:
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' }
链接地址: http://www.djcxy.com/p/5591.html
上一篇: How do I pass command line arguments to a nodejs program?