node.js 的argv包使用问题

问题描述:

参考《七天学会node.js》中的node-echo的例子(第二章的工程目录)。
1. 我使用命令:npm install argv安装了argv包;
2. 然后,按照里面提示的代码,
/* bin/node-echo */
var argv = require('argv'),
echo = require('../lib/echo');
console.log(echo(argv.join(' ')));
3. 第三,运行命令
node /home/duqi/node/node-echo/bin/node-echo.js -o hello word du qi

问题表现:

图片描述

解决问题的过程

(1)我认为是argv模块中join方法不存在;
(2)通过查询资料,找到这个资料:argv的包解释
在这个文章里,有提到
var options = { name: 'option', short: 'o', type: 'string', description: 'Defines an option for your script', example: "'script --opiton=value' or 'script -o value'" });
但是对这个options的含义不太理解
然后执行下面的这条语句
argv.option(options).run()
最后运行上述的命令,结果是
{ targets: [ 'word', 'du', 'qi' ], options: { option: 'hello' } }
这个结果不太理解~
(3)我又通过这篇文章查到process模块,然后写出下面的代码
var echo = require('../lib/echo'); var args = process.argv; var res = args[3]+' '; for(var i=4;i<args.length;i++){ res += args[i] + ' '; } console.log(echo(res));

问题最后解决了,但是,对argv模块的用法没有搞清楚,希望各位给我一点建议,非常感谢啦

阅读 10.1k
2 个回答
新手上路,请多包涵

通过文档解释,可以这样实现

var argv = require('argv'),
    args = argv.run();

console.log(args.targets.join(' '));

我试了一下

var argv = require('argv');
var args = argv.option({
    name: 'option',
    short: 'o',
    type: 'string',
    description: 'Defines an option for your script',
    example: "'script --opiton=value' or 'script -o value'"
}).run();

console.dir(args.options);

然后

$ node app.js -o aaa
{ option: 'aaa' }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题