命令行参数问题-跳过可选功能参数?

时间:2018-09-28 19:42:54

标签: javascript node.js

我正在学习命令行参数。我想做的是,如果您键入

,则在CLI上打印出显示“ Hello,World”的脚本。
node helloworld (name)

它将打印出Hello, (name)。而且,如果没有输入名称,则默认情况下将输出Hello, World

我基本上是这样做的,但是我想知道,有什么方法可以输入

node helloworld (yourname) 

避免打字的麻烦

node helloworld name (yourname)

function getArgument(argument){
  var index = process.argv.indexOf(argument);
  return (index === -1) ? null : process.argv[index+1];
}

var name = getArgument('name');
var message = name ? "Hello, " + name : "Hello, world.";
console.log(JSON.stringify(message));

底部的图像链接向您展示我在说什么。只想输入helloworld(实际名称)而不是helloworld名称(实际名称):

CLICK FOR PICTURE

1 个答案:

答案 0 :(得分:1)

当然,请始终接受第一个参数:

 let name = process.argv[2];

在您的情况下,argv如下所示:

 ["node", "helloworld", "(name)"]

因此,您只需访问第三个名称即可。

相关问题