process是一个全局的变量,所以使用的时候是不需要执行require操作,可以直接使用。
这里分两部分来说明,第一个就是可以借助它去获取进程信息,比如进程工作的时候本地是一个什么样的环境,通过process可以获取。第二个通过process可以对当前的进程做一些操作,比如说可以监听进程执行过程中内置的事件,创建子进程完成更多的操作。
process在node开发中是一个重要的全局变量。
内存相关获取
// 查看内存消耗
console.log(process.memoryUsage());
/**
* rss: 常驻内存
* heapToal: 总内存大小
* heapUsed: 已使用内存
* external: 扩展内存 - 底层模块占用的C/C++核心模块
* arrayBuffers: 缓冲区大小
*/
CPU相关信息获取
console.log(process.cpuUsage());
/**
* user: 用户占用的时间片段
* system: 系统占用的时间片段
*/
运行时可以通过process查看运行目录,node环境,cpu架构,用户环境,系统平台。
process.cwd(); // 运行目录
process.version; // node版本
process.versions; // 运行环境版本
process.arch; // cpu架构
process.env.NODE_ENV; // 环境 需要先设置
process.env.PATH; // 环境变量
process.env.USERPROFILE; // 管理员目录路径 不同环境方式不一样 process.env.HOME
process.platform; // 平台 win32 macos
运行时可以获取启动参数,PID,运行时间,
process.argv; // 获取运行参数,空格分隔可在数组中获取到,默认会存在node目录和执行脚本的目录两个值。
process.argv0; // 获取第一个值, 只有这一个api
process.pid; // 获取运行的pid
process.ppid;
process.uptime; // 脚本运行时间
事件监听在process中提供的内容。这里不会着重说明process里面到底有哪些事件,主要还是看一看在nodejs里面熟悉一下事件驱动编程以及发布订阅的模式。
process是实现了emit接口的。可以使用on监听事件,内部提供了很多的事件,比如exit,程序退出的时候执行。这里绑定的事件只能执行同步代码,是不可以执行异步代码的,这里要注意。
process.on('exit', (code) => { // 退出时
console.log(code); // 0
})
process.on('beforeExit', (code) => { // 退出之前
console.log(code); // 0
})
手动退出,这种退出不会执行beforeExit,而且exit后面的代码也不会执行,因为执行exit就已经退出了。
process.exit();
标准输出,输入,错误
process.stdout; // 是一个流,可以对他进行读写操作。
process.stdout.write('123'); // 123
const fs = require('fs');
fs.createReadStream('text.txt').pipi(process.stdout); // 读取文件输出。
process.stdin; // 可以拿到控制台输入的内容
process.stdin.pipe(process.stdout); // 输入之后输出
// 设置字符编码
process.stdin.setEncoding('utf-8');
// 监听readable事件,是否可读也就是有无内容
process.stdin.on('readable', () => {
// 获取输入的内容
let chunk = process.stdin.read();
if (chunk !== null) {
process.stdout.write(chunk);
}
})
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!