gpt4 book ai didi

javascript - 获取数组作为原始命令行参数

转载 作者:搜寻专家 更新时间:2023-11-01 00:41:16 25 4
gpt4 key购买 nike

我正在尝试在 Node.js 中实现原始命令行参数。

当我实现简单变量时一切正常

(node example.js variable)

但是当我实现一个数组作为参数时它不起作用

(node example.js "['127.0.0.5', '127.0.0.3']" )

完整代码:

if (process.argv.length <= 3) {
console.log("Usage: " + __filename + " SOME_PARAM");
process.exit(-1);
}

var variable = process.argv[2];
var array = process.argv[3];

console.log('Host: ' + variable);
console.log('array: ' + array);

问题

参数输入示例(node example.js 变量“['127.0.0.5', '127.0.0.3']”)

如何将第二个参数 ("['127.0.0.5', '127.0.0.3']") 作为数组而不是字符串(就像现在这样)传递,这样稍后我可能会访问数组的第 n 个元素(例如 array[0] = '127.0.0.5' )

解决方案

输入应该像('["127.0.0.5", "127.0.0.3"]' 改变引号),我们还需要将参数解析为 JSON。

if (process.argv.length <= 3) {
console.log("Usage: " + __filename + " SOME_PARAM");
process.exit(-1);
}

var variable = process.argv[2];
var array = JSON.parse(process.argv[4]);

console.log('Host: ' + variable);
console.log('array: ' + array);
console.log(array[1]

最佳答案

这是一个老问题,但如果有人仍在寻找简单的解决方案,这里就是。

使用相同的名称多次传递命名参数。

node example.js --variable=127.0.0.5 --variable=127.0.0.3

使用minimist将 args 提取为的 NPM 包:

const parseArgs = require('minimist');

const args = parseArgs(process.argv.slice(2));
console.log(args.variable);

输出:

[ '127.0.0.5', '127.0.0.3' ]

关于javascript - 获取数组作为原始命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33731458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com