最近在看javacript异步教程这本书中看到了这么一行代码
var fs = require('fs');
process.chdir('./main/recipe');
var concatenation = '';
fs.readFileSync('.').filter(function(filename) {
return fs.statSync(filename).isFile();
}).forEach(function(filename) {
concatenation += fs.readFileSync(filename, 'utf8');
})
console.log(concatenation)
然后就很好奇process究竟是个什么鬼。
于是查阅了相关教程,还是阮一峰老师这篇讲得清楚明白。
http://javascript.ruanyifeng.com/nodejs/process.html
process对象是 Node 的一个全局对象,提供当前 Node 进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。
process的属性
- process.arg:返回一个数组,成员是当前进程的所有命令行参数。
- process.env:返回一个对象,成员为当前Shell的环境变量,比如process.env.HOME。
- process.installPrefix:返回一个字符串,表示 Node 安装路径的前缀,比如/usr/local。相应地,Node 的执行文件目录为/usr/local/bin/node。
- process.pid:返回一个数字,表示当前进程的进程号。
- process.platform:返回一个字符串,表示当前的操作系统,比如Linux。
- process.title:返回一个字符串,默认值为node,可以自定义该值。
- process.version:返回一个字符串,表示当前使用的 Node 版本,比如v7.10.0。
于是我打印出来试了一试。反正这些就是跟系统相关的变量了。
process对象还有一些属性,用来指向 Shell 提供的接口。
process.stdout
也是会打印非常多的信息。。。
process.stdout属性返回一个对象,表示标准输出。该对象的write方法等同于console.log,可用在标准输出向用户显示内容。
该对象的write方法等同于console.log,可用在标准输出向用户显示内容。
process.stdin
process.stdin返回一个对象,表示标准输入。
process对象提供的方法
process.chdir():切换工作目录到指定目录。
process.cwd():返回运行当前脚本的工作目录的路径。
process.exit():退出当前进程。
process.getgid():返回当前进程的组ID(数值)。
process.getuid():返回当前进程的用户ID(数值)。
process.nextTick():指定回调函数在当前执行栈的尾部、下一次Event Loop之前执行。
process.on():监听事件。
process.setgid():指定当前进程的组,可以使用数字ID,也可以使用字符串ID。
process.setuid():指定当前进程的用户,可以使用数字ID,也可以使用字符串ID。