目录

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

    • 一、模块机制

      • 1)简单定义使用
      • 2)模块载入
      • 3)require中的文件查找
      • 4)从文件加载
      • 5)包结构
    • 二、事件机制
      • 1.Event模块的基本事件监听方法

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的事件机制

转载于:https://www.cnblogs.com/cg-Yun/p/5857842.html

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

  1. 转载:Node.js入门系列——《深入浅出Node.js》

    作者:田永强 日期:2011-12-02 完整版 前言: Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS ...

  2. 【QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)】

    [QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)] 1.说明 2.实验环境 3.参照学习链接 4.自己的学习与理解 5.学习与实践代码. (1)建立基础工程. (2)加入绘图事 ...

  3. 【QT 5 学习笔记-学习绘图相关+画图形图片等+绘图设备+基础学习(2)】

    [QT 5 学习笔记-学习绘图相关+画图形图片等+绘图设备+基础学习(2)] 1.说明 2.实验环境 3.参照连接 4.自己的学习与理解 5.学习与实践代码 (1)移动图片测试实验 (1)继续之前的工 ...

  4. JavaScript学习笔记(一)--JS基础【入门必看】

    JS介绍 JavaScript诞生于1995年,当时的主要目的是为了运行在浏览器中进行简单的表单验证.经过一系列的发展,现在的JavaScript既可以作为浏览器脚本语言,运行在浏览器进行表单验证.页 ...

  5. Unity学习笔记5 unity的js转c#

    上一篇已经说过,unity的js是一种变种的js,和真正的js还是有区别的,所以有时候会给人一种有点不伦不类的感觉--如果对于完全没有编程基础的人来说,建议一开始就直接学c#吧,不要浪费时间去学js. ...

  6. 【JS学习笔记】基于自学的JavaScript学习笔记(1)JS教程与简介

    JavaScript学习目录 为什么要学习JS以及怎么学习 第一课时:JS教程与简介 1.什么是JavaScript? 2.JS定义: 3.JS作为脚本语言的特点 4.我能学习到什么? Sum Cha ...

  7. fetchxml 汇总_Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧

    我们经常要对表单里各种类型的字段进行读取或赋值,下面列出各种类型的读写方法及注意事项: 1. lookup 类型 清空值 var state = Xrm.Page.getAttribute(" ...

  8. Flex学习笔记[1]:AS与JS的相互通信

    环境:Flex Builder 3(AS3.0) 测试:点击客户端button,底层背景左下移动200px,flex绘制的三角的填充色由0x000000(黑)变0x00ffff(淡蓝)色 注意事项:1 ...

  9. 《MySQL实战45讲》——学习笔记04-05 “深入浅出索引、最左前缀原则、索引下推优化“

    04 | 深入浅出索引(上) 1. 什么是索引? 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样,书有500页,每页存的都是书的内容,目录可能只有5页,只存了页码:通过目录能快速找到某个主 ...

  10. Flutter学习笔记学习资料推荐

    对Flutter的学习已经有一段时间了,这里做一下总结记录,东西比较多,可能主要是一些学习资料的记录,还有一些杂七杂八的学习笔记. 文章目录 Flutter 初体验 Flutter 环境配置 Flut ...

最新文章

  1. db9针232接口波特率标准_RS232和RS485与RS422接口的基础知识详细介绍
  2. Linux下安装PHP7.1并做关联APACHE处理
  3. avue form提交变为不可编辑_教程42——富文本编辑器的原理(项目)
  4. 欢乐纪中某B组赛【2019.1.21】
  5. Delphi XE7 用indy开发微信公众平台(3)- 验证消息真实性
  6. 【Linux内核之旅】eBPF C语言入门架构
  7. .Net魔法堂:史上最全的ActiveX开发教程——部署篇
  8. [转]Windows 性能监视器工具-perfmon
  9. linux 查看内存条详情命令
  10. 汉字书写解码_汉字密码 | 500个字根即可解码10万个汉字,《说文解字》的神功...
  11. php 美化登录页面,把你的WordPress登录页面进行CSS美化
  12. 马斯克被曝曾骚扰机上空乘 SpaceX支付25万美元和解
  13. 弗洛伊德(floyd)算法核心代码
  14. 字体样式字体分类字体样式二
  15. Re:从零开始的领域驱动设计
  16. SpringSecurity退出登录logout报错404
  17. 软件过程与管理学习之:项目计划(Project Schedule)
  18. 备战2020年大学生电子设计大赛
  19. 收藏|Java程序员必看的几本基础书籍和常用工具
  20. 蚂蚁金服崔恒斌:金融智能——对话机器人新形态

热门文章

  1. MVC数据验证Model Validation
  2. 关于android studio的配置记录
  3. 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication'
  4. Winform 实现无边框窗体移动功能
  5. 防止xss(脚本攻击)的方法之过滤器
  6. Android开机键失灵启动手机的解决的方法
  7. java枚举类型详解
  8. TimeLine下载地址
  9. linux 中select()函数的使用
  10. bootstrap引入文件方法