用处:用于获取进程信息,无需require即可执行
- 资源:cpu 内存
console.log(process.memoryUsage())
得到结果:
rss:当前的常驻内存
heapTotal:当前脚本执行之初申请的总的内存大小
heapUsed:当前脚本执行过程中实际使用的内存大小
external:扩展内存<底层模块(c/c++)所占据的内存大小>
arrayBuffers:缓冲区-独立的空间大小
console.log(process.cpuUsage())
user:用户执行所占用的cpu的事件片段
system:系统执行所占用的cpu的事件片段
- 运行环境:运行目录、node环境、cpu架构、用户环境、系统平台
运行目录:
console.log(process.cwd())
node环境:
console.log(process.version)
console.log(process.versions)
cpu架构:
console.log(process.arch)
用户环境:
console.log(process.env.NODE_ENV)
console.log(process.env.PATH)
console.log(process.env.USERPROFILE) // 获取层级管理员目录 -- Windows系统
console.log(process.env.HOME) // 获取层级管理员目录 -- Mac系统
系统平台:console.log(process.platform)
- 运行状态:启动参数、PID、运行时间
启动参数:
console.log(process.argv) // 返回一个数组,基础值有两个
0:nodejs.exe所在目录
1:当前脚本所在目录
console.log(process.argv0) // 取到第一个值 注意只有argv0并没有argv1及其后续的值
process.execArgv // 获取启动参数/配置参数等
PID:
console.log(process.pid) // 获取当前进程的进程 ID 的方法,而浏览器中没有这个属性。
console.log(process.ppid) // 获取当前进程的父进程 ID 的属性
运行时间:
console.log(process.uptime()) // 程序运行开始到结束所消耗的时间
setTimeout(() => {
console.log(process.uptime()
)}, 3000)
- 事件
监听退出之前的事件--在'exit'事件之前执行:
process.on('beforeExit', (code) => {
// 做一些操作,code为退出状态码,0为正常退出
// 'beforeExit'事件内部可以执行异步事件操作
})
监听退出事件:
process.on('exit', (code) => {
// 做一些操作,code为退出状态码,0为正常退出
// 'exit'事件内部不能执行异步事件操作
})
注:二者的代码顺序位置没有关系,'beforeExit'会比'exit'事件先执行,除非进行强制的程序退出操作,例如:process.exit():主动退出程序,后续将不会执行 -- 只会触发'exit'事件,不会触发'beforeExit'事件
- 标准输出、输入、错误
标准输出:process.stdout
标准输入:process.stdin
process.stdin.setEncoding('utf-8')
process.stdin.on('readable', () => {
let chunk = process.stdin.read()
if(chunk != null) {
process.stdout.write('data ' + chunk)
}
})