获取数组作为原始命令行参数
Getting Array as a raw command line argument
我正在尝试在 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 variable "['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]
您将无法传递数组。您必须做的(并且可能正在做的事情)是传递类似转换为 JSON 字符串的数组。
在应用程序中,您只需执行 JSON.parse()
即可从字符串中获取数组。
这是一个老问题,但如果有人仍在寻找简单的解决方案,这里就是。
多次传递相同名称的命名参数。
node example.js --variable=127.0.0.5 --variable=127.0.0.3
使用 minimist NPM 包将 args 提取为:
const parseArgs = require('minimist');
const args = parseArgs(process.argv.slice(2));
console.log(args.variable);
输出:
[ '127.0.0.5', '127.0.0.3' ]
我正在尝试在 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 variable "['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]
您将无法传递数组。您必须做的(并且可能正在做的事情)是传递类似转换为 JSON 字符串的数组。
在应用程序中,您只需执行 JSON.parse()
即可从字符串中获取数组。
这是一个老问题,但如果有人仍在寻找简单的解决方案,这里就是。
多次传递相同名称的命名参数。
node example.js --variable=127.0.0.5 --variable=127.0.0.3
使用 minimist NPM 包将 args 提取为:
const parseArgs = require('minimist');
const args = parseArgs(process.argv.slice(2));
console.log(args.variable);
输出:
[ '127.0.0.5', '127.0.0.3' ]