Node.js全局对象-process

可以在任意位置使用,不必通过require命令引入。

属性

platform

返回一个字符串,表示当前的操作系统。当期可能的值有aix、darwin、freebsd、linux、openbsd、sunos、win32

在mac上输出为darwin,在windows上输出为win32

pid

返回一个数字,表示当前进程的进程号(程序在运行时,CPU会分配给当前程序一个进程ID号,用于唯一标识该进程)

execPath

返回node程序所在的绝对路径

console.log(process.execPath)   ///usr/local/bin/node

argv

返回一个数组。第一个元素是 process.execPath ,第二个元素是正在执行的脚本路径,其余元素是其他命令行参数

例如,process.js内容如下

process.argv.forEach((val, index) => {
    console.log(`${index}:${val}`)
})

执行命令

node ./process.js one two=three four

打印结果

0:/usr/local/bin/node
1:/Users/lianglanlan/Desktop/code/process.js
2:one
3:two=thre
4:four

真正的命令行参数实际是从 process.argv[2] 开始,要得到真正的参数,这样做

const myArgs = process.argv.slice(2)
console.log(myArgs)

version

返回Node.js版本字符串

console.log(`版本: ${process.version}`)    //版本: v10.20.1

memoryUsage()

返回描述Node.js进程内存使用量的对象,单位字节,对象有下面几个属性

  • rss:进程占用的内存部分,包括代码本身、堆、栈
  • heapTotal:堆中总共申请到的内存量
  • heapUsed:堆中目前用到的内存量,判断内存泄漏主要以这个字段为准
  • external:V8引擎内部C++对象占用的内存

代码参考地址:https://zhuanlan.zhihu.com/p/72380507

/**
 * 单位为字节格式为 MB 输出
 */
const format = bytes => (bytes / 1024 / 1024).toFixed(2) + 'MB'

/**
 * 封装 print 方法输出内存占用信息 
 */
const print = () => {
    const memoryUsage = process.memoryUsage()

    console.log(JSON.stringify({
        rss: format(memoryUsage.rss),
        heapTotal: format(memoryUsage.heapTotal),
        heapUsed: format(memoryUsage.heapUsed),
        external: format(memoryUsage.external)
    }))
}

function Quantity(num) {
    //返回一个空数组
    if (num) {
        return new Array(num * 1024 * 1024)
    }
    return num
}

function Fruit(name, quantity) {
    this.name = name
    this.quantity = new Quantity(quantity)
}

let apple = new Fruit('apple')
print() //{"rss":"22.98MB","heapTotal":"8.51MB","heapUsed":"4.05MB","external":"1.39MB"}

let banana = new Fruit('banana', 20)
print() //{"rss":"183.27MB","heapTotal":"168.52MB","heapUsed":"164.14MB","external":"1.40MB"}

 

事件

process.exit([code])

  • code:退出码,默认值为0

以code为状态指示Nodejs终止进程。失败状态退出码为1

process.exit(1);

process.cwd()

返回Node.js进程的当前工作目录

console.log(`当前工作目录是:: ${process.cwd()}`)
//当前工作目录是:: /Users/lianglanlan/Desktop/code/study/node/01

 

posted @ 2020-05-13 14:22  懒懒同学不懒  阅读(251)  评论(0编辑  收藏  举报