process 进程说明
process 对象是一个全局变量,它提供有关当前 Node.js 进程的信息并对其进行控制。 作为一个全局变量,它始终可供 Node.js 应用程序使用,无需使用 require()。
属性使用篇
process.argv 获取命令行参数
$ node process-args.js one two=three four// process-args.jsprocess.argv.forEach((val, index) => {console.log(`${index}: ${val}`);});// outputs0: /usr/local/bin/node1: /Users/mjr/work/node/process-args.js2: one3: two=three4: four
process.env 属性返回包含用户环境的对象
process.env 属性返回包含用户环境的对象。 参阅 [environ(7)](http://nodejs.cn/s/zvAzBK)。
此对象的示例如下所示:{TERM: 'xterm-256color',SHELL: '/usr/local/bin/bash',USER: 'maciej',PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',PWD: '/Users/maciej',EDITOR: 'vim',SHLVL: '1',HOME: '/Users/maciej',LOGNAME: 'maciej',_: '/usr/local/bin/node'}
事件篇
- 三个标准流:process.stdout 标准输出、process.stdin 标准输入、process.stderr 标准错误输出
process 对象是 [EventEmitter](http://nodejs.cn/s/pGAddE) 的实例。
// 开始从stdin读取数据,以便进程不会退出。// stdin流在默认情况下是暂停的,因此必须调用process.stdin.resume()以从中读取。另请注意,调用 process.stdin.resume()自身会将流切换到“旧”模式。process.stdin.resume()// 选中命令行工具 Ctrl + C 会触发事件,once次事件只被触发一次process.once('SIGINT', () => {console.log('Received SIGINT. Press Control-D to exit.')})// Using a single function to handle multiple signalsfunction handle (signal) {console.log(`Received ${signal}`)}// 选中命令行工具 Ctrl + C 会触发事件// process.on('SIGINT', handle)// 默认的行为process.on('SIGTERM', handle)// 选中命令行工具 Ctrl + \ 会触发事件process.on('SIGQUIT', handle)// 选中命令行工具 Ctrl + back 会触发事件, 但只有window会被触发process.on('SIGBREAK', handle)
