zoukankan      html  css  js  c++  java
  • node.js学习第二天--进程管理

    1、简介

       process是一个全局内置对象,可以在代码中的任何位置访问此对象,这个对象代表我们的node.js代码宿主的操作系统进程对象。

    使用process对象可以截获进程的异常、退出等事件,也可以获取进程的当前目录、环境变量、内存占用等信息,还可以执行进程退出、工作目录切换等操作。

    下面我们一起来学习一下process对象的一些常用方法。

    2、cwd函数的基本用法

    当我们想要查看应用程序当前目录时,可以使用cwd函数,使用语法如下:

    process.cwd();
    

    获取程序目录的方法就是这样简单,继续下一课时吧!。

    小拓展:cwd函数,返回运行当前脚本的工作目录的路径

    3、chdir函数的基本用法

    如果需要改变应用程序目录,就要使用chdir函数了,它的用法如下:

    process.chdir("目录");


    小拓展:chdir函数,改变程序工作目录

    4、stdout的基本用法

    stdout是标准输出流,它是干什么的呢?请下看下面的示例:

    console.log = function(d){
        process.stdout.write(d+'
    ');
    }
    

    没错,它的作用就是将内容打印到输出设备上,console.log就是封装了它。

    试一试,用stdout输出"hello world"。

    小拓展:process.stdout.write方法等同于console.log。

    5、stderr的基本用法

    stderr是标准错误流,和stdout的作用差不多,不同的是它是用来打印错误信息的,我们可以通过它来捕获错误信息,基本使用方法如下:

    process.stderr.write(输入内容);
    

    试一试,用stderr输出字符串"test"。

    小拓展:process.stderr:一个可写流到标准错误输出。

    6、stdin的基本用法

    stdin是进程的输入流,我们可以通过注册事件的方式来获取输入的内容,如下:

    process.stdin.on('readable', function() {
      var chunk = process.stdin.read();
      if (chunk !== null) {
        process.stdout.write('data: ' + chunk);
      }
    });
    

    示例中的chunk就是输入流中的内容。

    7、exit函数的基本用法

    如果你需要在程序内杀死进程,退出程序,可以使用exit函数,示例如下:

    process.exit(code);
    

    参数code为退出后返回的代码,如果省略则默认返回0;

    小拓展:exit函数,终止当前进程并返回给定的code参数。

    8、注册事件

    前面讲到如何在输入流中打印信息,当我们需要获取stdout内容的时候应该怎么做呢?请看如下的示例:

    process.stdout.on('data',function(data){
       console.log(data);
    });
    

    为stdout注册data事件,我们就可以拿到它输出的内容了。


    小拓展:通过指定事件类型和回调函数,你可以注册当事件发生时被执行的操作。

    9、设置编码

    在我们的输入输出的内容中有中文的时候,可能会乱码的问题,这是因为编码不同造成的,所以在这种情况下需要为流设置编码,如下示例:

    process.stdin.setEncoding(编码);
    
    process.stdout.setEncoding(编码);
    
    process.stderr.setEncoding(编码);
    

    试一试,设置stdout编码格式为"utf8"

    小扩展:node.js编码格式只支持UTF8、ascii、base64,暂时不支持GBK、gb2312。

    10、课程小结

    process的常用方法就讲到这里了,如果你想了解更多可以参考以下地址:

  • 相关阅读:
    时区 : America/Mexico_City 中文:美国中部时间(墨西哥城) 的夏令时
    Android中的常见时区
    嵌套滚动demo
    Android之获得内存剩余大小与总大小
    通过ip获取地理位置信息
    9.png(9位图)在android中作为background使用导致居中属性不起作用的解决方法
    Android ActivityManagerService 基本构架详解
    Eclipse 常用快捷键 (动画讲解)(转载)
    eclipse安装svn插件,在输入url后,一直卡在in progress界面不懂。
    android——背景颜色渐变(梯度变化)
  • 原文地址:https://www.cnblogs.com/niuchunjian/p/4162112.html
Copyright © 2011-2022 走看看