节点,从命令行接受参数

如何在通过命令行传递的Node.js程序中接受参数

使用以下命令调用Node.js应用程序时,可以传递任意数量的参数

node app.js

参数可以是独立的,也可以具有键和值。

例如:

node app.js flavio

或者

node app.js name=flavio

这将改变您在节点代码中检索此值的方式。

您检索它的方式是使用process内置到Node中的对象。

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

第一个参数是node命令。

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

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

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

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

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

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

免费下载我的Node.js手册


更多节点教程: