美文网首页web前端
process常用属性和方法

process常用属性和方法

作者: 姜治宇 | 来源:发表于2020-04-11 20:52 被阅读0次

process是node内置的进程对象,使用时不需require,可以直接使用,常用的process的属性和方法有:

memoryUsage()

这个方法返回一个对象,描述了node进程的内存使用情况,属性值的单位为字节。

console.log(process.memoryUsage())
/*返回结果:
* { rss: 20660224,
  heapTotal: 7159808,//堆内存的总大小
  heapUsed: 4264936,//正在使用的堆内存大小
  external: 8224 }
* */

nextTick(fn)

这货在vue是比较常见了,node也有这个方法,这个方法传一个回调函数,回调函数会打进微任务队列,微任务会先于宏任务(定时器timeout)执行。

setImmediate(()=>{
    console.log('宏任务-定时器immediate')
})

setTimeout(()=>{
    console.log('宏任务-定时器timeout')
},100)
process.nextTick(()=>{
    console.log('微任务-nextTick')
})

/*
* 执行结果:
* 微任务-nextTick
宏任务-定时器immediate
宏任务-定时器timeout
* */

on()

监听方法。
比较常用的是未知异常的监听,这样出错了也不会退出node进程。

var http = require('http');

var server = http.createServer(function(req,res){
    method(); //由于method()未定义,会将程序进程退出。
    res.end('ok')
});
server.listen(3003);
//放大招,所有无法捕获的异常都能获取到
process.on('uncaughtException', function (err) {
    console.log('Caught Exception:' + err);//直接捕获method()未定义函数,Node进程未被退出。
});

exit(code)

退出进程方法。code可以不写,默认就是0。

process.on('exit',(code)=>{
    console.log('进程退出,结束状态码为:',code)
})
process.exit(1)
/*
执行结果:
进程退出,结束状态码为: 1
*/

cwd()

英文就是current working directory,现在工作的路径:

console.log(process.cwd());//打印当前process执行的路径

argv属性

打印这个属性会返回一个数组,数组有两个元素,分别是:node命令的路径、待执行文件的路径。

console.log(process.argv)
/*
* 执行结果:
* ['/usr/local/node/v8.10.0/bin/node',
* '/home/app/test.js']
* */

如果你在执行文件后面再加参数,则也可以获取到:

>node test.js 3001 3002
console.log(process.argv)
/*
* 执行结果:
* ['/usr/local/node/v8.10.0/bin/node',
* '/home/app/test.js',
* '3001','3002']
* */

pid、ppid属性

返回进程的id、父id。

console.log(process.pid)// 当前进程id:58355
console.log(process.ppid)// 当前进程的父id:56912

kill()

杀死进程id。

process.on('SIGHUP', () => {
    console.log('收到 SIGHUP 信号');
});
process.on('exit',(code)=>{
    console.log('进程退出,结束状态码为:',code)
})

setTimeout(() => {
    console.log('退出中');
    process.exit(0);
}, 100);

process.kill(process.pid, 'SIGHUP');

相关文章

网友评论

    本文标题:process常用属性和方法

    本文链接:https://www.haomeiwen.com/subject/vqsemhtx.html