玩转Node.js - 02. 接收命令行参数
来源:互联网 发布:淘宝客新手怎么推广 编辑:程序博客网 时间:2024/04/28 05:10
准备工作:
1. 来到我们的工作目录$ cd ~/nodejs
2. 如果还没有工作目录,请按下面方式新增
$ cd ~$ mkdir nodejs$ cd nodejs
目标:接收命令行一个或多个参数,并求和
Node.js为我们提供了一个全局对象process
,其中process.argv
属性可以获取到所有命令行参数。
下面,我们来简单测试一下:
创建或编辑文件:~/nodejs/program.js
内容只有一行:
console.log(process.argv)
保存退出,我们输入命令:
$ node program.js 1 2 3
控制台输出结果类似:
[ 'node', '/path/to/your/program.js', '1', '2', '3' ]
输出的第一个元素总是”node”,第二个元素是命令文件所在地址”/path/to/your/program.js”,后面开始就是命令行的各个参数。
所以如果我们要计算各个参数的和,需要从第3个元素(index为2)的地方开始遍历。
注意:process.argv输出的全部是字符串类型。我们可以用
+process.argv[2]
或者Number(process.argv[2])
来转为数值类型。
下面开始实际操作:
1. 新建文件node02.js
$ vim node02.js
2. 申明一个变量result
用来保存求和后的结果
var result = 0;
3. 使用for
语句遍历命令行参数(process.argv)
for (var i = 2; i < process.argv.length; i++) { result += Number(process.argv[i]);}
4. 使用console
打印结果
console.log(result);
然后保存后,退出
5. 使用node
命令运行程序
$ node node02.js 1 2 3
6. 检查控制台输出结果:
6
本篇代码
文件:~/nodejs/node02.js
var result = 0;for (var i = 2; i < process.argv.length; i++) { result += Number(process.argv[i]);}console.log(result);
扩展阅读
process
对象
process
是Node.js中的一个全局对象,提供了跟进程相关的操作。同时也是”Class: events.EventEmitter”的实例,拥有”EventEmitter”的事件处理机制。
本例中,除了使用”process.argv”来获取命令行参数外,其实在console.log(result)
调用时,内部也使用到了process所提供的标准输出流。
输出流案例:process.stdout
例如console.info([data][, …])
的定义:
console.log = function(d) { process.stdout.write(d + '\n');};
内部使用了process.stdout用来向标准输出流输出日志
输入流案例:process.stdin
process.stdin.setEncoding('utf8');process.stdin.on('readable', function() { var chunk = process.stdin.read(); if (chunk !== null) { process.stdout.write('data: ' + chunk); }});process.stdin.on('end', function() { process.stdout.write('end');});
运行以上程序,会把我们输入的内容原样打印出来。按”Control+D”结束程序时,会输出”end”。
参数获取案例:process.argv
// print process.argvprocess.argv.forEach(function(val, index, array) { console.log(index + ': ' + val);});
process
的更多属性及方法,请参考官方文档
参考资料:
process Node.js v0.12.7 Manual & Documentation
learnyounode - BABY STEPS
- 玩转Node.js - 02. 接收命令行参数
- Node.js 参数的接收
- node.js学习之get接收参数
- 玩转Node.js单元测试
- PHP中 接收命令行参数(转)
- C++ 接收命令行参数
- MFC 接收命令行 参数
- php接收命令行参数
- python接收命令行参数
- 玩转Node.js - 01. Hello World!
- 玩转Node.js - 05. LS 过滤器
- 玩转linux主机--node.js、npm
- Node.js编程快餐(2) - 处理命令行参数
- Node.js Command Line Options(命令行参数)
- node.js 命令行运行的时候传参数
- vc中接收命令行参数
- eclipse pydev 接收命令行参数
- PHP中 接收命令行参数
- 轻松记住大端小端的含义(附对大端和小端的解释)
- 数字颠倒
- 错误: g_dbus_connection_register_object: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
- 利用 Commons-Fileupload 实现文件上传
- PHPExcel用法(详细)
- 玩转Node.js - 02. 接收命令行参数
- The Pilots Brothers' refrigerator
- VS2005在Win7上兼容性问题解决
- IE6下position:absolute的定位BUG
- tabbar隐藏不变黑
- 利用查找表处理图像
- C/C++中extern关键字详解
- iOS远程推送测试
- Squid代理服务器的安装与配置