Node.js-入门二--进程

来源:互联网 发布:养殖场消毒器淘宝 编辑:程序博客网 时间:2024/05/22 03:07

1.简介


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

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

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


2.cwd函数的基本用法。

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

  1. process.cwd();

获取程序目录的方法就是这样简单。

3.chdir函数的基本用法。


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


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

4.stdout函数的基本用法。

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

  1. console.log = function(d){
  2. process.stdout.write(d+'\n');
  3. }
没错,它的作用就是将内容打印到输出设备上,console.log就是封装了它。

5.stderr函数的基本用法。

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


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


6.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就是输入流中的内容。

7.exit函数的基本用法

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

  1. process.exit(code);

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


8.监听进程事件

使用process.on()方法可以监听进程事件。

exit事件

当进程要退出之前,会触发exit事件。通过监听exit事件,我们可就以在进程退出前进行一些清理工作:

  1. //参数code表示退出码
  2. process.on("exit",function(code){
  3. //进行一些清理工作
  4. console.log("I am tired...")
  5. });
  6. var tick = Date.now();
  7. console.log(tick);

uncaughtException事件

如果进程发生了未捕捉的异常,会触发uncaughtException事件。通过监听这个事件,你可以 让进程优雅的退出:

  1. //参数err表示发生的异常
  2. process.on("uncaughtException",function(err){
  3. console.log(err);
  4. });
  5. //故意抛出一个异常
  6. throw new Error("我故意的...");

使用process.on()方法可以监听进程事件。

exit事件

当进程要退出之前,会触发exit事件。通过监听exit事件,我们可就以在进程退出前进行一些清理工作:

  1. //参数code表示退出码
  2. process.on("exit",function(code){
  3. //进行一些清理工作
  4. console.log("I am tired...")
  5. });
  6. var tick = Date.now();
  7. console.log(tick);

uncaughtException事件

如果进程发生了未捕捉的异常,会触发uncaughtException事件。通过监听这个事件,你可以 让进程优雅的退出:

  1. //参数err表示发生的异常
  2. process.on("uncaughtException",function(err){
  3. console.log(err);
  4. });
  5. //故意抛出一个异常
  6. throw new Error("我故意的...");

exit事件

当进程要退出之前,会触发exit事件。通过监听exit事件,我们可就以在进程退出前进行一些清理工作:

  1. //参数code表示退出码
  1. process.on("exit",function(code){
  1. //进行一些清理工作
  1. console.log("I am tired...")
  1. });
  1. var tick = Date.now();
  1. console.log(tick);

uncaughtException事件

如果进程发生了未捕捉的异常,会触发uncaughtException事件。通过监听这个事件,你可以 让进程优雅的退出:

  1. //参数err表示发生的异常
  2. process.on("uncaughtException",function(err){
  3. console.log(err);
  4. });
  5. //故意抛出一个异常
  6. throw new Error("我故意的...");

9.设置编码


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

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



  • process.stdin.setEncoding(编码);
  •  
  • process.stdout.setEncoding(编码);
  •  
  • process.stderr.setEncoding(编码);
  • 0 0
    原创粉丝点击