您的位置:首页 > Web前端 > Node.js

node中全局对象三 --- process

2016-10-29 21:58 232 查看

 process模块用来与当前进程的互动。process其实完整的写法是global.process

process对象提供了一系列的属性、方法和事件。

一:属性

process.pid:当前进程的进程号process.version:Node的版本,比如v0.10.18process.platform:当前系统平台,比如Linuxprocess.title:默认值为“node”,可以自定义该值process.argv:当前进程的命令行参数数组process.env:指向当前shell的环境变量,比如process.env.HOMEprocess.execPath:运行当前进程的可执行文件的绝对路径process.stdout:指向标准输出process.stderr:指向标准错误process.stdin: 指向标准输入,用于监听用户的输入。现在对以上的一些属性进行讲解一下

   (1、process.stdout   process.stderr,在命令窗口中向用户显示内容

             显示结果发现该两个的区别颜色不一样,跟console.log和console.error差不多。

   (2、process.stdin ---该方法用于监听用户的输入。

           在webstorm中运行之后在控制台处出现光标闪烁,说明可以输入,回车则显示输入的内容。              在cmd命令行下运行也是一样,可以输入,回车之后显示输入的内容,按ctrl+c则可以退出输入。     在nodeJs的旧版本中,默认情况下,输入流是关闭的,要监听处理输入流数据,首先要开启输入流:process.stdin.resume();     不过在新版本中不需要这个了。     我们下面用一个例子来讲标准输入输出结合起来使用:    
process.stdin.setEncoding('utf-8');

var a, b;
process.stdout.write("请输入a的值:");
process.stdin.on('data',function(chunk){
if(!a){
a = Number(chunk);

process.stdout.write("请输入b的值:");
}else{
b = Number(chunk);
process.stdout.write("a + b = " +(a+b));
}

});
    根据输入步骤输入a , b 的值之后,该段代码的执行结果为:     

     (3: process.argv  这个是以数组的形式来显示

                        在cmd下命令下执行结果如下:                                  可以看出输出的形式是以数组的形式输出的,0:是node命令的绝对路径1:是node执行的js文件的绝对路径,2....(数组的后面主要由执行命令后面跟数据决定)      

二:process提供的方法

process.exit():退出当前进程process.cwd():返回运行当前脚本的工作目录的路径process.chdir():改变工作目录process.nextTick():将一个回调函数放在下次事件循环的顶部        下面我们对process.cwd()来详细的讲解一下         在webstorm下,我们发现执行结果和__dirname的执行结果是一样的,         但是他们两个也有区别,__dirname表示代码js文件所在目录          process.cwd()表示执行node命令的时候(cmd命令行下),我们在哪个目录  current working dir  

  三:process 方法提供的事件

 exit事件 :当前进程退出时,会触发exit事件 uncaughtException事件 : 当前进程抛出一个没有被捕捉的意外时,会触发uncaughtException事件 readable  :有东西可以读取的时候就会触发这个事件 SIGINT : 如在cmd命令行下输入ctrl+C 触发的退出行为        下面我们对一些事件处理进行详细的讲解

        (1、readable 

                    上图控制台中绿色框为输入的内容,红色框内的为回车之后读取打印出来的数据。     

     (2、exit  SIGINT 

               下面我们用一个例子来总体了解一下这两个事件。                             这次我们在cmd控制台处运行,运行之后输入2回车之后则打印了2(如下图),祝部分主要是process的stdin属性起的作用                                        接着我按ctrl+c来进行取消进程,则结果如下图显示,首先是ctrl+c触发了SIGINT事件,所以首先打印了“Program has a signal”;                                                                                                         然后 process.exit();触发了exit事件,所以后面跟着打印了"Program will exit"。             
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息