最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • process常用api整理

    正文概述 掘金(隐冬)   2021-06-30   597

    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);
        }
    })
    

    起源地下载网 » process常用api整理

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元