node中全局对象三 --- process

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

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

一:属性

  • process.pid:当前进程的进程号
  • process.version:Node的版本,比如v0.10.18
  • process.platform:当前系统平台,比如Linux
  • process.title:默认值为“node”,可以自定义该值
  • process.argv:当前进程的命令行参数数组
  • process.env:指向当前shell的环境变量,比如process.env.HOME
  • process.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"。
             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值