全局对象
下面这些方法可以直接在模块中使用,值得注意的一点是,其中有一些对象是挂载在全局作用域中的,有一些则是挂载在具体的模块作用域中。
Class: Buffer
- 函数
用于处理二进制数据。
__dirname
- 字符串
当前脚本执行时所在的目录:
console.log(__dirname);
// /Users/mjr
__dirname
实际上并不属于全局,而是存在于每一个模块之中。
__filename
- 字符串
代码所在文件的文件名,返回一个绝对路径。对主程序来说,这个值和命令行中使用的文件名未必一致。在模块内,该值为模块文件的路径。
下面代码是在 /Users/mjr
目录下使用 node example.js
启动的:
console.log(__filename);
// /Users/mjr/example.js
__filename
实际上并不属于全局,而是存在于每一个模块之中。
clearInterval(t)
取消使用 setInterval()
创建的定时器。
clearTimeout(t)
取消使用 setTimeout()
创建的定时器。
console
- 对象
用于输出数据到 stdout 和 stderr。
exports
该对象是对 module.exports
的引用,更多有关 exports
和 module.exports
的用法请参考本文档的 module
模块。
exports
实际上并不属于全局,而是存在于每一个模块之中。
global
- 对象,全局命名对象
在浏览器中,顶层作用域为全局作用域,这意味着在全局作用域定义一个变量的话,这个变量就自动变成了全局变量。在 Node.js 中有所不同的是,顶层作用于并不是全局作用域,在 Node.js 模块内声明的变量属于模块内部的局部变量。
module
- 对象
该对象是对当前模块的引用。module.exports
主要用来定义模块暴漏给外部的变量,便于其他模块通过 require()
获取这些变量。
module
实际上并不属于全局,而是存在于每一个模块之中。
process
- 对象
进程对象。
require()
- 函数
该方法用于加载模块。
require.cache
- 对象
该对象缓存请求到的模块,通过删除该对象的键值对,可以在下次 require()
模块时重新加载模块。
require.extensions
require.resolve()
使用内部的 require()
机制查找模块的位置,并不加载模块,只会返回模块的文件名。
setInterval(cb, ms)
参见 timer 模块的 setInterval()。
setTimeout(cb, ms)
参考 timer 模块的 setTimeout()。