Rumah > Soal Jawab > teks badan
比如在很多php py 文件中!都会从命令行接受参数的值并带入程序中!
我也想用node.js这么写 我目前是这样写的 感觉太费劲了!
var options = process.argv;
for(var i=0;i<canshu.length;i++)
{
if(options[i].indexOf("-string")==0)
{
。。。。。
}
else if(options[i].indexOf("--start")==0)
{
........
}
}
感觉这样好费劲 有什么更加好一点的方法没?
怪我咯2017-04-17 11:06:41
看看tj大神的commander.js
https://github.com/visionmedia/commander.js
代码示例
#!/usr/bin/env node
/**
* Module dependencies.
*/
var program = require('commander');
program
.version('0.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')
.parse(process.argv);
console.log('you 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);
天蓬老师2017-04-17 11:06:41
楼上提到的commander是专门用来写CLI的了,如果你只是需要一个专门parse命令行参数的包,可以用substack的optimist: https://npmjs.org/package/optimist
PHPz2017-04-17 11:06:41
注意
http://witcheryne.iteye.com/blog/1196170
#!/usr/bin/env node
var program = require('commander');
function range (val) {
return val.split('..').map(Number);
}
function list (val) {
return val.split(',')
}
//定义参数,以及参数内容的描述
program
.version('0.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.on('help', 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.parse(process.argv)
//输出结果
console.info('--messsage:')
console.log(program.message);
console.info('--integer:')
console.log(program.integer)
console.info('--range:')
console.log(program.range)
console.info('--list:')
console.log(program.list)