node.js之全局对象process
2016-12-25 19:47
441 查看
process是一个全局内置对象,可以在代码中的任何位置访问此对象,这个对象代表我们的node.js代码宿主的操作系统进程对象。
使用process对象可以截获进程的异常、退出等事件,也可以获取进程的当前目录、环境变量、内存占用等信息,还可以执行进程退出、工作目录切换等操作。
获取程序目录的方法就是这样简单
示例中的chunk就是输入流中的内容。
参数code为退出后返回的代码,如果省略则默认返回0;
exit事件
当进程要退出之前,会触发exit事件。通过监听exit事件,我们可就以在进程退出前进行一些清理工作:
如果进程发生了未捕捉的异常,会触发uncaughtException事件。通过监听这个事件,你可以 让进程优雅的退出:
使用process对象可以截获进程的异常、退出等事件,也可以获取进程的当前目录、环境变量、内存占用等信息,还可以执行进程退出、工作目录切换等操作。
process对象的一些常用方法:
cwd函数的基本用法
当我们想要查看应用程序当前目录时,可以使用cwd函数,使用语法如下:process.cwd();
获取程序目录的方法就是这样简单
chdir函数的基本用法
如果需要改变应用程序目录,就要使用chdir函数了,它的用法如下:process.chdir("目录");
stdout的基本用法
stdout是标准输出流,它的作用就是将内容打印到输出设备上,console.log就是封装了它:console.log = function(d){ process.stdout.write(d+'\n'); }
stderr的基本用法
stderr是标准错误流,和stdout的作用差不多,不同的是它是用来打印错误信息的,我们可以通过它来捕获错误信息,基本使用方法如下:process.stderr.write(输入内容);
stdin的基本用法
stdin是进程的输入流,我们可以通过注册事件的方式来获取输入的内容,如下:process.stdin.on('readable', function() { var chunk = process.stdin.read(); if (chunk !== null) { process.stdout.write('data: ' + chunk); } });
示例中的chunk就是输入流中的内容。
exit函数的基本用法
如果你需要在程序内杀死进程,退出程序,可以使用exit函数,示例如下:process.exit(code);
参数code为退出后返回的代码,如果省略则默认返回0;
监听进程事件
使用process.on()方法可以监听进程事件。exit事件
当进程要退出之前,会触发exit事件。通过监听exit事件,我们可就以在进程退出前进行一些清理工作:
//参数code表示退出码 process.on("exit",function(code){ //进行一些清理工作 console.log("I am tired...") }); var tick = Date.now(); console.log(tick); uncaughtException事件
如果进程发生了未捕捉的异常,会触发uncaughtException事件。通过监听这个事件,你可以 让进程优雅的退出:
//参数err表示发生的异常 process.on("uncaughtException",function(err){ console.log(err); }); //故意抛出一个异常 throw new Error("我故意的...");
设置编码
在我们的输入输出的内容中有中文的时候,可能会乱码的问题,这是因为编码不同造成的,所以在这种情况下需要为流设置编码,如下示例:process.stdin.setEncoding(编码); process.stdout.setEncoding(编码); process.stderr.setEncoding(编码); //试一试,设置stdout编码格式为"utf8"
相关文章推荐
- Node.js 的Process全局对象
- Node.js的全局对象和全局变量
- Node.js学习--基础知识(8)--全局对象和全局变量
- Node.js 全局对象
- Node.js的全局对象和全局变量
- node.js全局对象和全局变量
- Node.js的全局对象和全局变量
- Node.js 全局对象
- node中全局对象三 --- process
- Node.js:全局对象
- Node.js 全局对象
- Node.js 全局对象
- Node.JS核心模块之全局对象和常用工具
- Node.js全局对象
- Node.js入门笔记(2):全局对象(1)
- Node.js全局对象
- Node.js全局对象
- Node.js全局对象
- [Node.js]全局对象
- Node.js入门笔记(3):全局对象(2)