node.js全局对象入门例子详解

发布时间:2020-12-14编辑:脚本学堂
有关node.js全局对象的介绍,包括process进程、console控制台、buffer缓冲等,不了解的朋友参考下。

node.js全局对象,以下这些对象在所有模块中可用。

实际上其中某些对象可以使用在模块范围但不适用于全局范围,这些将另行通知。

global(全局)
全局命名空间对象(The global namespace object.)
在浏览器中,最高层的范围(top-level scope)是全局范围(global scope)。

如果在浏览器的全局范围中定义一个变量,将定义的是全局可用的变量。

在NODEJS中不同。最高层的范围(top-level scope)不是全局范围(global scope);
在node模型中定义一个变量将是这个模块的局部变量。

process(过程)
过程对象(process object)请参阅过程对象章节。

console (控制台)
用于标准输出(stdout :standard output)和标准错误输出(stderr:STDERR)的打印,参考标准输入输出(stdio:standard input/ouput)章节

Buffer (缓冲)
用于处理二进制数据( binary data),参考缓冲章节。www.edata8.com

require() (请求模块)
请求模块。查看模块章节。require 实际上不是一个全局的,更确切地说是每个模块的局部的。

require.resolve()
用require()内部机构查看一个模块的本地情况,实际上就是加载模块,仅仅返回解析的文件名

require.cache
当模块被请求时全都缓存在这个对象中。
可以通过一个键值对(keyvalue )从此对象中删除,下一个请求将重新加载模块

__filename
代码中的filename将被执行。这是这个代码文件的绝对路径
对于一个主程序,这没有必要再命令行中使用相同的文件名。在模块中的值是这个模块文件的路径。

例子:运行/Users/mjr路径下的js文件。
node example.js
 

console.log(__filename);
// /Users/mjr/example.js


__filename 不是实际的全局变量,而是一个模块的局部变量。
__dirname

当前执行脚本的目录路径名。
例子:running node example.js from /Users/mjr
 

console.log(__dirname);
// /Users/mjr
 

__dirname不是实际的全局变量,而是一个模块的局部变量。
module

当前模块的一个引用。详细说明 module.exports与exports是相同对象。查看src/node.js获取更多详细信息。
module 不是实际的全局变量,而是一个模块的局部变量。
exports
一个在当前模块中所有实体共享的对象,可以通过访问require()获取。
exports与 module.exports是同一对象。
查看src/node.js获取更多详细信息。

exports 不是实际的全局变量,而是一个模块的局部变量。
 

setTimeout(cb, ms) #
clearTimeout(t) #
setInterval(cb, ms) #
clearInterval(t) #
 

这些定时器函数都是全局变量,请参考定时器章节(timers)