如何在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