如何将命令行参数传递给 Node.js程序?标准方法(无库)

我有一个用Node编写的Web服务器.js我想使用特定文件夹启动。我不确定如何在JavaScript中访问参数。我正在运行这样的节点:

$ node server.js folder

这是我的服务器代码。Node.js帮助说这是可能的:server.js

$ node -h
Usage: node [options] script.js [arguments]

如何在 JavaScript 中访问这些参数?不知何故,我无法在网上找到这些信息。


答案 1

标准方法(无库)

参数存储在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

答案 2

为了像常规javascript函数接收的那样规范化参数,我在我的节点中执行此操作.js shell脚本:

var args = process.argv.slice(2);

请注意,第一个参数通常是 nodejs 的路径,第二个参数是您正在执行的脚本的位置。