node.js 如何完美的从命令行接收参数所传递进来的值

比如在很多php py 文件中!都会从命令行接受参数的值并带入程序中!
我也想用node.js这么写 我目前是这样写的 感觉太费劲了!

var options = process.argv;
forvar i=0;i<canshu.length;i++
{ ifoptions[i].indexOf"-string"==0 { 。。。。。 } else ifoptions[i].indexOf"--start"==0 { ........ }
}

感觉这样好费劲 有什么更加好一点的方法没?

看看tj大神的commander.js

https://github.com/visionmedia/commander.js

代码示例

#!/usr/bin/env node /** * Module dependencies. */ var program = requirecommander; program .version0.0.1 .option-p, --peppers, Add peppers .option-P, --pineapple, Add pineapple .option-b, --bbq, Add bbq sauce .option-c, --cheese [type], Add the specified type of cheese [marble], marble .parseprocess.argv; console.logyou ordered a pizza with:;
if program.peppers console.log - peppers;
if program.pineapple console.log - pineapple;
if program.bbq console.log - bbq;
console.log - %s cheese, program.cheese;

楼上提到的commander是专门用来写CLI的了,如果你只是需要一个专门parse命令行参数的包,可以用substack的optimist: https://npmjs.org/package/optimist

建议楼主多逛逛https://npmjs.org/browse/star
里面库基本都全了

注意




在下面的程序是不可少的。
@0x_Jin 你看看这篇文章的写法

http://witcheryne.iteye.com/blog/1196170



#!/usr/bin/env node var program = requirecommander; function range val { return val.split...mapNumber;
} function list val { return val.split,
} //定义参数,以及参数内容的描述
program .version0.0.1 .usage[options] [value ...] .option-m, --message <string>, a string argument .option-i, --integer <n>, input a integet argument., parseInt .option-f, --float <f>, input a float arg, parseFloat .option-l, --list <items>, a list, list .option-r, --range <a>..<b>, a range, range //添加额外的文档描述
program.onhelp, function { console.log Examples: console.log console.log # input string, integer and float console.log $ ./nodecmd.js -m "a string" -i 1 -f 1.01 console.log console.log # input range 1 - 3 console.log $ ./nodecmd.js -r 1..3 console.log console.log # input list: [1,2,3] console.log $ ./nodecmd.js -l 1,2,3 console.log
}; //解析commandline arguments
program.parseprocess.argv //输出结果
console.info--messsage:
console.logprogram.message; console.info--integer:
console.logprogram.integer console.info--range:
console.logprogram.range console.info--list:
console.logprogram.list

发表评论

电子邮件地址不会被公开。 必填项已用*标注