如何将命令行参数传递给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?

下一篇: facebook graph API stopped working