📅  最后修改于: 2023-12-03 15:18:42.393000             🧑  作者: Mango
在 Node.js 中,可以通过 process.argv
获取用户在命令行中输入的所有值。其中,process.argv[0]
表示 Node.js 的执行路径,process.argv[1]
表示当前文件的路径,而 process.argv[2]
及之后的参数则表示输入的参数。
举个例子,当我们在命令行中输入以下命令:
node app.js arg1 arg2 arg3
那么 process.argv
的值应该为:
['/usr/local/bin/node', '/Users/username/path/to/app.js', 'arg1', 'arg2', 'arg3']
值得注意的是,process.argv
的值始终为字符串类型。
可以通过以下方法获取输入的参数值:
const args = process.argv.slice(2);
console.log(args); // ['arg1', 'arg2', 'arg3']
上述代码中,使用 Array.prototype.slice()
方法去掉了前两个元素,即 Node.js 执行路径和当前文件路径。
如果我们要获取某个特定位置的参数值,可以通过下标访问 process.argv
:
const arg1 = process.argv[2];
console.log(arg1); // 'arg1'
当然,由于 process.argv
始终为字符串类型,我们还需要对其进行类型转换,比如将数字参数转换为数字类型:
const numArg = parseInt(process.argv[2]);
console.log(typeof numArg, numArg); // number 123
process.argv
的使用非常灵活,可以根据实际需求灵活选择。例如,我们可以根据输入的参数值不同实现不同的功能,或者对不同的参数执行不同的操作:
const args = process.argv.slice(2);
switch (args[0]) {
case 'create':
// 创建新文件
break;
case 'delete':
// 删除指定文件
break;
default:
console.log('Invalid command');
break;
}
需要注意的是,当我们需要获取用户输入的敏感信息时,应该采用其他方式,比如使用 readline
模块,以保障用户信息的安全。
process.argv
只是 Node.js 提供的众多全局变量之一,如果想了解更多 Node.js 的全局变量和模块,可以查看官方文档。