Process对象
提供当前Node进程的信息
1.退出码
0:正常退出 1:发生未捕获错误,5:V8执行错误,8:不正确的参数
重点:128+信号值(如果Node接受到退出信号(比如SIGKILL或SIGHUP),它的退出码就是128加上信号值。).由于128的二进制形式是10000000, 所以退出码的后七位就是信号值。
2.属性
argv:返回当前进程的命令行参数数组。[参数数组 ]
env:返回一个对象,成员为当前Shell的环境变量,比如process.env.HOME。[shell的环境变量]
installPrefix:node的安装路径的前缀,比如/usr/local,则node的执行文件目录为/usr/local/bin/node。[]
pid:当前进程的进程号。[进程号]
platform:当前系统平台,比如Linux。[平台]
process.title:默认值为“node”,可以自定义该值。
process.version:Node的版本,比如v0.10.18。
2.1stdout,stdin,stderr
注意:process.stdin process.stdout 与其他进程的通信 是通过stream形式 所以通过pipe管道命令中介
实验:
创建读取流之后通过zlib创建gzip 但是没有找到生成的gzip.. (fixed:api问题)
参考:http://blog.csdn.net/jiangbo_phd/article/details/51909174
问题:
1.Buffer from方法第2个参数传递base64 报错..(fixed node版本..)
参考: 1. http://blog.fens.me/nodejs-buffer/
2.https://nodejs.org/api/buffer.html#buffer_class_method_buffer_from_array
2.问题2:参数不是一个类型数组 (fixed node 版本)
参考1:.https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwjayqTQ-8DQAhXMj5QKHV4tDC8QFggZMAA&url=http%3a%2f%2fstackoverflow%2ecom%2fquestions%2f36899888%2fgetting-typeerror-this-is-not-a-typed-array-using-buffer-from-in-mocha&usg=AFQjCNHq0i6IXF8MwHglkdAz_pV10FMY0A
参考2:To make the creation of Buffer objects more reliable and less error prone, the various forms of the new Buffer() constructor have been deprecated and replaced by separate Buffer.from(), Buffer.alloc(), and Buffer.allocUnsafe() methods.
貌似是node版本太低... 不过n模块全局安装后 指令无效...
2.1.2 stdin 标准输入
process.stdin.pipe(process.stdout) 表示将标准输入导向标准输出。
效果:输入xxxx 就输出data:xxx;
2.2 argv,execPath,execArgv
argv属性返回一个数组,由命令行执行脚本时的各个参数组成。它的第一个成员总是node,第二个成员是脚本文件名,其余成员是脚本文件的参数。
2.3 process.env
process.env属性返回一个对象,包含了当前Shell的所有环境变量。比如,process.env.HOME返回用户的主目录。
通常的做法是,新建一个环境变量NODE_ENV,用它确定当前所处的开发阶段,生产阶段设为production,开发阶段设为develop或staging,然后在脚本中读取process.env.NODE_ENV即可。
3.方法
tip:setTimeout 还有process.nextTick 及各种回调函数的执行顺序
疑问:process对象的函数应该平常很少用吧(linux上跑node在运行环境也不可能有权限去手动debug吧)..莫非pm2底层就是这些..检测变化然后输出各种调试信息
tip:https://github.com/Unitech/pm2/tree/master/lib