Node.js 学习笔记 - 学习《深入浅出Node.js》-朴灵

Node.js 学习笔记 - 学习《深入浅出Node.js》-朴灵



一、模块机制

1)简单定义使用

  • require('模块名')
  • export., 定义模块函数

2)模块载入

模块分类

  • 原生(核心)模块,二进制编译,被定义在lib下,快
  • 文件模块,第二次require从缓存加载

文件模块分类

  • .js,通过fs模块读取js文件并编译执行
  • .node,通过C/C++进行编写的Addon,通过dlopen加载
  • .json,读取文件,调用JSON.parse解析加载

载入顺序

  1. 原生模块在启动被加载
  2. 原生模块 module加载通过 Module.runMain 加载文件模块
  3. _load静态方法分析文件路径以来创建个模块实例对象
  4. 模块实例对象根据文件名加载
  5. 对主文件 app.js文件进行头尾包装
  6. require 即调用load方法
  7. 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

未完待续,后面的大致浏了下,没咋看懂,看来还是得先熟悉熟悉用法再看的

深入浅出Node.js(四):Node.js的事件机制

posted @ 2016-09-09 19:30  -浮云骑士-  阅读(570)  评论(0编辑  收藏  举报