Node.js process

参考
《Node.js开发指南 ByVoid》Page 59
process 是一个全局变量,即 global 对象的属性。它用于描述当前 Node.js 进程状态的对象,提供了一个与操作系统的简单接口。通常在你写本地命令行程序的时候,少不了要和它打交道。下面将会介绍 process 对象的一些最常用的成员方法。

一、agrv

process.argv 这个有什么用途?
Node.js的语法是与Javascript一样吗

process.argv返回命令行脚本的各个参数组成的数组。可以获取bat里面的参数。

// print process.argv
process.argv.forEach(function(val, index, array) {
  console.log(index + ': ' + val);
});
$ node process.js one two=three four
0: node
1: /Users/node/process.js
2: one
3: two=three
4: four

可以看出,会将bat命令以空格为标记,拆成一个数组。索引0是node命令,索引1是运行路径。索引2开始就是参数了。

这个用处挺多的。例如你在bat的文件这样写。node app 127.0.0.1 7001 这时候通过.argv [2] 得到IP,argv[3]得到端口,更方便我们修改配置。

再看个例子:

/**
 * 通过process.argv读取命令行参数,其构造如下
 * 1.process.argv返回为是一个数组形式
 * 2.process.argv[0] 当前命令,一般为node,因为通过node执行
 * 3.process.argv[1] 当前命令执行的脚本完整路径
 * 4.process.argv[2,n] 命令参数
 */
//这里要实现通过命令行传参数进行求和的算法
console.log("1.当前执行的命令为:",process.argv[0]);
console.log("2.执行的脚本地址为:",process.argv[1]);
//这里截取参数数组中有效的参数列表
var params = process.argv.slice(2);
console.log("3.执行的命令参数为:",params);
var result = 0;
for(var i = 0;i

执行

node process-argv.js 1 2 H 3 4
1.当前执行的命令为: node
2.执行的脚本地址为: /home/code/workspace/node/core/process-argv.js
3.执行的命令参数为: [ '1', '2', 'H', '3', '4' ]
4.计算后的有效值的和为: 10

最后一个例子

process.argv.forEach(function (val, index, array) {
      switch(val){
        case "-x":
          xlsxDir = process.argv[index+1];
        case "-w":
          asDir=process.argv[index+1];
         break;
        case "-s":
          serverDir=process.argv[index+1];
         break;
        case "-d":
          dataDir=process.argv[index+1];
         break;
      }
});

执行

@echo off
set PRO_PATH=../WgameH5/wgameH5Client/
set XLSX_PATH=../WGameConfig/xlsx
set AS_PATH=%PRO_PATH%src/data/staticData
set DATA_PATH=%PRO_PATH%bin/h5/res/data
set SERVER_PATH=./xml

del /q "%AS_PATH%\"
del /q "%DATA_PATH%" 
echo "******************node run ing *********************************"
node excelExport.js -x %XLSX_PATH% -w %AS_PATH% -d %DATA_PATH%  -s %SERVER_PATH%
pause
二、process.nextTick(callback)

参考Process.nextTick 和 setImmediate 的区别?

你可能感兴趣的:(Node.js process)