Node的全局对象,就是整个应用都能引用的对象。Node本身内置了多个全局变量、全局对象和全局函数。
全局变量有两个:__filename和__dirname,
__filename:表示当前正在执行的脚本文件名;
__dirname:当前脚本所在的目录;
全局对象
常见的全局对象,有console,process和exports。
console:console对象用于提供控制台标准输出;
process:对象用于描述当前进程的状态;这个对象只存在于NodeJS中,它有这样几个属性:
常用的方法如下:
exports:exports对象是Nodejs模块系统公开的接口。
全局函数
NodeJS提供了6个全局函数:
前面的4个函数,使我们常用的定时器函数。setImmediate(callback[,…args])和clearImmediate(immediate)两个函数,是在I/O事件回调之后立即执行的。
事件触发和监听
NodeJS是由事件驱动的,每一个任务都可以看做是一个事件来处理,事件监听和触发,整体架构如下图所示:
NodeJS的事件驱动是通过events模块来完成,events模块提供了EventEmitter类,用来处理事件,例如:
EventEmitter = require('events')
eventEmitter = new EventEmitter()
EventEmitter类有这些属性:
事件监听和触发
事件的监听,通过调用on方法;事件触发,则是通过调用emit方法,代码如下:
const event = require("events");
const commit = new event.EventEmitter()
commit.on("cccc", () => {
console.log("执行了指定事件")
});
commit.emit('cccc')
需要注意的是,在on方法中定义的事件名称,需要触发哪个事件,就在emit方法中传入对应的事件名称。
如果监听的事件,不需要了,就可以直接删除掉,用到以下这两个方法:
- removeListener(eventName,listener):删除指定名称的监听事件;
- removeListener(eventName,listener):删除指定名称的监听事件;