global全局对象
在Node.js里面有一个叫global的对象,它的属性和方法可以在全局中访问到,即全局变量。
在游览器Javascript中全局对象是window,而Node.js中全局对象是global。
全局变量在所有模块中均可使用。 但以下变量的作用域只在模块内
1 2 3 4 5
   | __dirname __filename exports module require()
   | 
__dirname
1
   | console.log(__dirname) # 获取当前模块的文件所在的文件夹名称的绝对路径
   | 
__filename
1
   | console.log(__filename) # 获取当前模块的文件名称-解析后的绝对路径
   | 
1 2 3
   | setImmediate(() => { 	console.log('坑呀')  });
  | 
1 2 3 4
   | let a = setImmediate(() => { 	console.log('坑呀')  }); clearImmediate(a)
  | 
process 进程
process.cwd()
1
   | console.log(process.cwd()) # 方法返回 Node.js 进程当前工作的目录。
   | 
process.argv
1 2 3 4 5 6 7 8 9 10 11
   |  console.log(process.argv) 
 
  node a.js a=1 b=2
 
  [ 'C:\\Program Files\\nodejs\\node.exe',   'c:\\Users\\windows\\Desktop\\新建文件夹\\a.js',   'a=1',   'b=2' ]
 
  | 
process.argv 属性返回一个数组,这个数组包含了启动Node.js进程时的命令行参数。第一个元素为process.execPath。如果需要获取argv[0]的值请参见 process.argv0。第二个元素为当前执行的JavaScript文件路径。剩余的元素为其他命令行参数。
process.env
1
   | console.log(process.env) 
   | 
可以修改这个对象
1 2
   | process.env.foo = 'bar'; console.log(process.env.foo); 
   | 
但是不可以用这种方法去修改
1
   | node http.js  'process.env.foo = "bar"'
   | 
用 delete从process.env中删除一个属性
1 2 3
   | process.env.foo = 'bar'; delete process.env.foo; console.log(process.env.foo); # 输出 undefined
   | 
注: 在process.env中新增一个属性,会将属性值转换成字符串、 在Windows系统下,环境变量是不区分大小写的。
process.memoryUsage()
1 2 3 4 5 6 7
   | console.log(process.memoryUsage()) # 返回Node.js进程的内存使用情况的对象,该对象每个属性值的单位为字节。
 
  { rss: 23588864,   heapTotal: 7708672,   heapUsed: 4430656,   external: 8224 }
   | 
rss(resident set size):所有内存占用,包括指令区和堆栈。
heapTotal:”堆”占用的内存,包括用到的和没用到的。
heapUsed:用到的堆的部分。
external: V8 引擎内部的 C++ 对象占用的内存。
process.chdir(directory)
1 2 3 4 5 6 7
   | console.log(process.cwd()) process.chdir('..')  console.log(process.cwd())
  // 输出   '..'切换到上一级目录 C:\Users\windows\Desktop\新建文件夹 C:\Users\windows\Desktop
   | 
process.nextTick(callback[, …args])
1 2 3
   | process.nextTick(function(){   console.log('nextTick');  })
  | 
参考
http://www.ruanyifeng.com/blog/2017/04/memory-leak.html
http://nodejs.cn/api/process.html#process_process
http://nodejs.cn/api/globals.html