关于node.js:如何从命令行将字符串作为参数传递给node?

How do you pass a string as an argument to Node from the command-line?

我不熟悉node,我正在尝试在node中编写一个命令行工具,允许您将字符串作为参数传入。

我看到,当使用process.argv时,节点似乎会破坏作为数组传入的每个单词。我想知道获取字符串的最佳方法是循环遍历数组以构造字符串,还是有其他选项?

所以,假设我有一个简单的程序,它获取一个字符串并简单地控制台。看起来像这样。

1
2
> node index.js This is a sentence.
> This is a sentence.


你可以用引号把句子括起来,也就是说。

> node index.js"This is a sentence."

另一种选择是加入程序中的文本:

1
2
3
4
process.argv.shift()  // skip node.exe
process.argv.shift()  // skip name of js file

console.log(process.argv.join(""))


如果你打算使用NPM软件包。然后使用最小化。变得容易处理命令行参数。例如,查看他们的NPMJS网页。希望这对你有帮助。

1
2
var args=require('minimist')(process.argv.slice(2),{string:"name"});
console.log('Hello ' +args.name);

输出是…

1
2
node app.js --name=test
Hello test


The above answer uses excessive code!

Instead of shifting it twice use Array.prototype.splice.

1
2
3
4
5
// Removes elements from offset of 0
process.argv.splice(0, 2);

// Print the text as usually!
console.log(process.argv.join(' '));

代码摘要

  • 从数组中删除前2个元素。
  • 使用[Backspace]熟食计加入他们。