【问题标题】:Concatting arguments after argv[2] NodeJs在 argv[2] NodeJs 之后连接参数
【发布时间】:2016-08-08 16:47:11
【问题描述】:

编辑:Mykola Borysyuk 建议我使用node-optimist,不幸的是作者说它已弃用并使用Minimist

阅读后,我了解了它的基本要点,但是有人可以给我举个例子吗?


正如标题所示,我正在尝试为一个命令组合多个参数。

换句话说... 命令转到node init.js search <value>

显然我不知道用户在搜索后会输入多少字,所以我想将所有这些“参数”连接成一个字符串,然后发送到我的搜索模块。

我知道我可以使用以下内容将所有参数“分组”成独立的字符串

var cmd_string = process.argv.map( function(arg){
    return "'" + arg.replace(/'/g, "'\\''") + "'";
}).join(' ');

这可以输出所有参数

process.argv.forEach((val, index) => {
    console.log(`${index}: ${val}`);
});

但我不知道如何仅提取 process.argv[2]; 之后的值

奖励:如果可能的话,你能否告诉我或链接一个我可以搜索 --option=value 等标志的方式

我花了几个小时在 Reddit 和 Google 上冲浪,但都失败了,所以希望你能提供一些见解。

【问题讨论】:

标签: javascript arrays node.js npm


【解决方案1】:

要获取所有可以使用的参数

process.argv

例如:

node test.js arg1 arg2

process.argv 会是这样的:

[NodeJs path, file path, arg1, arg2]

在你可以对参数做任何你想做的事情之后,例如,加入字符串:

process.argv.join('');

要跳过两个元素,您可以使用以下内容:

process.argv.splice(2, process.argv.length - 1)

或 process.argv.slice(2)

【讨论】:

  • 你能不能举一些例子来说明如何用 Minimist 做到这一点?
猜你喜欢
  • 2015-12-21
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 1970-01-01
  • 2020-01-06
  • 2013-09-07
  • 1970-01-01
相关资源
最近更新 更多