今天项目里突然想在初始化时跑一些数据,于是想起以前在python时可以在命令行里带参数运行命令的,经过百度后确实也是有的。

** process.argv**

//想获得命令行后面的几个参数值
/*
//node arg.js arg1 arg2 arg3, 想取得这三个参数
//即可以程序中用:
var args = process.argv.splice(2)
//process是一个全局对象,argv返回的是一组包含命令行参数的数组。
//第一项为”node”,第二项为执行的js的完整路径,后面是附加在命令行后的参数
*/

 

代码如下:

var arguments = process.argv.splice(2);
console.log('所传递的参数是:', arguments);

//
// print process.argv
process.argv.forEach(function (val, index, array) {
  console.log(index + ': ' + val);
});

process.argv is an array containing the command line arguments. The first element will be 'node', the second element will be the name of the JavaScript file. The next elements will be any additional command line arguments.

来自stackoverflow

 

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

比如在很多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)
  {
    ........
  }
}

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

看看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);


作者:深思海数_willschang
链接:https://www.jianshu.com/p/474e6d76f867
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.jianshu.com/p/474e6d76f867

              https://segmentfault.com/q/1010000000367285

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐