关于node的一些基本概念
- process: 该对象表示Node所处的当前进程,允许开发者与该进程互动。
- global: 表示Node所在的全局环境,类似于浏览器的window对象。需要注意的是,如果在浏览器中声明一个全局变量,实际上是声明了一个全局对象的属性,比如
var x = 1
等同于设置window.x = 1
,但是Node不是这样,至少在模块中不是这样(REPL环境的行为与浏览器一致)。在模块文件中,声明var x = 1
,该变量不是global对象的属性,global.x等于undefined。这是因为模块的全局变量都是该模块私有的,其他模块无法取到。 - __filename: 指向当前运行的脚本文件名。
- __dirname: 指向当前运行的脚本所在的目录。
- Buffer():用于操作二进制数据。
核心模块
- http: 提供HTTP服务器功能。
- url:解析url。
- fs: fileSystem,与文件系统交互。
- querystring: 解析url的查询字符串。
- util:提供一些实用的小工具。
- path:提供路径处理。
- child_process:新建子进程。
- crypto:提供加密和解密功能,基本上是对OpenSSL的包装。
上面这些核心模块,源码都在Node的lib子目录中。为了提高运行速度,它们安装时都会被编译成二进制文件。
核心模块总是最优先加载的。如果你自己写了一个HTTP模块,require('http')
加载的还是核心模块。
网友评论