26

我想用节点和节点指挥官创建一个脚本,当我尝试获取我的 args 的值时,我得到的值是 true 而不是值本身。

例如,如果我在终端中写这个:

node myfile.js -s somefile -d test

var program = require('commander');

program
  .version('0.0.1')
  .option('-s, --src', 'src csv file')
  .option('-d, --destination', 'destination csv file')
  .parse(process.argv);

console.log(program.src); // return true
console.log(program.destination); // return true

我如何获得这个 args 的价值?

4

3 回答 3

34

文档不是很清楚,仅通过示例显示,但您使用的语法 ( )'-s, --src'用于布尔值。

如果你想取一个字符串,你需要这样说:'-s, --src <item>'

于 2015-02-22T20:10:44.863 回答
11

您没有指定选项接受输入。您可以通过在选项定义中包含<data>[data](如果可选)来做到这一点:

.option('-s, --src <src>', 'src csv file') .option('-d, --dest [dest]', 'destination csv file')

于 2015-02-22T20:15:24.710 回答
8

您需要指定选项接受一个参数并且它们不仅仅是一个标志

program
  .version('0.0.1')
  .option('-s, --src <file>', 'src csv file')
  .option('-d, --destination <file>', 'destination csv file')
  .parse(process.argv);

如果参数是强制性的,则用 指定<>。如果它是可选的,使用[].

于 2015-02-22T20:11:59.910 回答