Node.js中所有的异步的I/O操作在完成时都会发送一个事件到事件队列。事件由EventEmitter对象提供。
Node.js的事件循环:
node.js程序由事件循环开始,到事件循环借宿,所有的逻辑都是事件的回调函数。node.js始终在事件循环中,程序入口就是事件循环第一个事件的回调函数。
事件回调函数在执行过程中可能会发出I/O请求或直接发射(emit)事件,执行完毕后再返回事件循序,事件循环会检查事件队列中有没有未处理的事件,直到程序结束。
node.js的事件循环由libev库实现。libev支持多种类型的事件,eg: ev_io,ev_timer,ev_signal,ev_idle。。。均被封装EventEmitter封装。
模块(Module 和 Package)和包:
包可以理解为是实现了某个功能模块的集合,用于发布和维护。
模块: 文件和模块是一一对应的,一个Node.js文件就是一个模块,这个文件可能就是JavaScript代码,JSON或者编译过的C/C++扩展。
1.创建模块:
exports是模块公开的接口,require用于从外部获取一个模块的接口,即所获取模块的exports对象。
时间: 2024-10-29 19:11:08