node.js从命令行接收参数

node.js从命令行接收参数

如何在使用node命令运行node.js程序的时候传递一些参数。

比如: node app.js

直接在 app.js 后面传参: node app.js param1 param2

然后在 app.js 文件中使用 process.argv 来接收命令行传进来的参数数组。

process.argv 数组第一个元素是node绝对路径,第二个参数是app.js的绝对路径,从第三个参数开始是命令行传递的参数。

所以可以直接截取index为2开始之后的所有元素:

1
2
3
4
5
6
7
// 获取传入的参数
const args = process.argv.slice(2)

// 如果传入的参数是key=value的情况,需要解析,可以使用minimist库来解析
const args = require('minimist')(process.argv.slice(2))
// 获取解析后的参数
args['paramName']

使用了minimist库的话需要在命令行中每一个参数前面加上--,比如node app.js --name=Mason --age=22

minimist: https://www.npmjs.com/package/minimist

评论