Node.js 学习笔记 - 学习《深入浅出Node.js》-朴灵
目录
一、模块机制
1)简单定义使用
- require('模块名')
- export., 定义模块函数
2)模块载入
模块分类
- 原生(核心)模块,二进制编译,被定义在lib下,快
- 文件模块,第二次require从缓存加载
文件模块分类
- .js,通过fs模块读取js文件并编译执行
- .node,通过C/C++进行编写的Addon,通过dlopen加载
- .json,读取文件,调用JSON.parse解析加载
载入顺序
- 原生模块在启动被加载
- 原生模块 module加载通过 Module.runMain 加载文件模块
- _load静态方法分析文件路径以来创建个模块实例对象
- 模块实例对象根据文件名加载
- 对主文件 app.js文件进行头尾包装
- require 即调用load方法
- load 载入、编译、缓存module,返回exports对象
3)require中的文件查找
4)从文件加载
require 接受参数
- http、fs、path等,原生模块
- ./mod或../mod,相对路径的文件模块
- /pathtomodule/mod,绝对路径的文件模块
- mod,非原生模块的文件模块
每个文件模块都有个paths属性,即module.paths
整个文件查找流程
5)包结构
CommonJS规范
- 一个 package.json 文件应该存在于包顶级目录下
- 二进制文件应该包含在bin目录下
- JavaScript代码应该包含在lib目录下
- 文档应该在doc目录下
- 单元测试应该在test目录下
包的发布还需注意定义package.json的格式
二、事件机制
- 大部分模块继承自Event模块
- Event模块:实现了简单的事件监听器模式
1.Event模块的基本事件监听方法
- addListener/on
- once
- removeListener
- removeAllListeners
- emit
未完待续,后面的大致浏了下,没咋看懂,看来还是得先熟悉熟悉用法再看的