nodejs命令行执行时带参数并接收参数

今天项目里突然想在初始化时跑一些数据,于是想起以前在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

 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值