如何在Node.js程序中从命令行接收参数

在调用Node.js应用程序时,您可以传递任意数量的参数

node app.js

参数可以是独立的,也可以由键和值组成。

例如:

node app.js flavio

或者

node app.js name=flavio

这会影响您在Node代码中如何检索这个值。

要检索它,可以使用Node内置的process对象。

它暴露了一个argv属性,它是一个包含所有命令行参数的数组。

第一个参数是node命令的完整路径。

第二个元素是正在执行的文件的完整路径。

所有其他参数从第三个位置开始存在。

您可以使用循环遍历所有参数(包括节点路径和文件路径):

process.argv.forEach((val, index) => {
 console.log(`${index}: ${val}`)
})

通过创建一个新数组来排除前两个参数,您可以仅获取其他参数:

const args = process.argv.slice(2)

如果有一个没有索引名称的参数,像这样:

node app.js flavio

您可以使用以下方式访问它:

const args = process.argv.slice(2)
args[0]

在这种情况下:

node app.js name=flavio

args[0]name=flavio,您需要解析它。

最好的方法是使用minimist库,它有助于处理参数:

const args = require('minimist')(process.argv.slice(2))
args['name'] // flavio