简介

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

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

1.cwd函数的基本用法

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

  1. process.cwd();

2.chdir函数的基本用法

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

  1. process.chdir("目录");

3.stdout的基本用法

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

  1. console.log = function(d){
  2. process.stdout.write(d+'\n');
  3. }

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

4.stderr的基本用法

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

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

5.stdin的基本用法

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

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

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

6.exit函数的基本用法

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

  1. process.exit(code);

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

7.注册事件

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

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

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

8.设置编码

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

  1. process.stdin.setEncoding(编码);
  2. process.stdout.setEncoding(编码);
  3. process.stderr.setEncoding(编码);

nade.js(一)进程管理的更多相关文章

  1. Node.js的进程管理

    众所周知Node基于V8,而在V8中JavaScript是单线程运行的,这里的单线程不是指Node启动的时候就只有一个线程,而是说运行JavaScript代码是在单线程上,Node还有其他线程,比如进 ...

  2. 关于node.js的进程管理

    如果是单纯的运行一个node进程,那会比较简单,例如: node ./example.js 但是一般来说,当我们运行一个node进程之后,我们可能希望对这个进程进行更多的管理,例如,当node程序是一 ...

  3. node.js整理 05进程管理

    简介 NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用 常用API Pro ...

  4. 【nodejs学习】3.进程管理及异步编程

    进程管理 1.调用终端命令实现目录目录拷贝 var child_procress = require('child_procress'); var util = require('util'); fu ...

  5. Node的安装和进程管理

    安装nvm git clone https://github.com/creationix/nvm.git source nvm/nvm.sh 安装node nvm install 6.14.4(版本 ...

  6. 服务器端配置nodejs环境(使用pm2进程管理运行)

    一.brew安装: 由于Mac没有装ubantu,所以不能用apt-get命令,在本地命令行下Mac安装homebrew替代:  https://brew.sh 二.新开命令窗口,登录root用户,安 ...

  7. PHP FastCGI进程管理器PHP-FPM的架构

    一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态 ...

  8. nodeJS进程管理器pm2

    pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...

  9. electron教程(二): http服务器, ws服务器, 进程管理

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(二): http服务器, ws服务器, 进程管理 electron教程(三): 使 ...

随机推荐

  1. Windows上安装Xampp后通过命令行进入MariaDB

    题外话:读<MYSQL必知必会>,书中让我找个数据库服务器练手,我就去下了个Xampp,由于看的08年网易上的动态网站开发,那个时候Xampp中的m代表MYSQL,后来通过命令行进入MYS ...

  2. Ext 怎么发ajax请求

    Ext3.3完整包 Ext3.3中文文档 数据表的结构是:数据表table  > 记录record > 字段 store的结构是:  Ext.data.Store > Ext.dat ...

  3. javacript 面向对象

    1.对象 使用Object创建对象 var p = new Object(); p.name = 'jason'; p.sayName = function(){ alert(this.name); ...

  4. hdu 5567 sequence1(水)

      问题描述 给定长度为n的序列a,求有多少对i,j(i<j),使得∣ai−aj∣ mod b=c 输入描述 若干组数据(大概5组). 每组数据第一行三个整数n(≤n≤),b,c(≤c<b ...

  5. IOS(swift)-数据存储 · 用NSUserDefaults存储配置信息

    1.用NSUserDefaults存储配置信息 注:本次使用NSUserDefaults存储信息是在不考虑安全问题的前提下.分两种情况:1.如果是密码用户名等敏感信息,请使用Keychain存储用户敏 ...

  6. 【单调队列】【3-21个人赛】【problmeB】

    Problem B Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Sub ...

  7. odbc连接数据库

    using System; using System.Collections.Generic; using System.Text; using Console = System.Console; u ...

  8. Map笔记总结

    Map :存储的是键值对,一对一对出现的,要保证键的唯一性. Map常见的三个子类.1.HashTable 底层是哈希表结构,不能存在null的情况.该集合是线程同步的.效率低此类实现一个哈希表,该哈 ...

  9. 常见Web Service 使用网址

    下面的网址是常用Web Service http://www.webxml.com.cn/zh_cn/web_services.aspx 里面的很多Web Service接口...可以用到的,很有用!

  10. 12款令程序员惊叹的CSS3效果库

    最新的CSS3都配备了新的特性,来设计创建动画和互动的网页.在本文中,可以找到一些非常优秀的CSS3效果库,来让你的Web设计看起来更加引人注目.还在等什么?让我们一起看起来吧! Animate.cs ...