Node.js 学习笔记 - 学习《深入浅出Node.js》-朴灵
目录
- 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解析加载
载入顺序
- 原生模块在启动被加载
- 原生模块 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
未完待续,后面的大致浏了下,没咋看懂,看来还是得先熟悉熟悉用法再看的
深入浅出Node.js(四):Node.js的事件机制
转载于:https://www.cnblogs.com/cg-Yun/p/5857842.html
Node.js 学习笔记 - 学习《深入浅出Node.js》-朴灵相关推荐
- 转载:Node.js入门系列——《深入浅出Node.js》
作者:田永强 日期:2011-12-02 完整版 前言: Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS ...
- 【QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)】
[QT 5 学习笔记-学习绘图相关+画线图形等+绘图事件+基础学习(1)] 1.说明 2.实验环境 3.参照学习链接 4.自己的学习与理解 5.学习与实践代码. (1)建立基础工程. (2)加入绘图事 ...
- 【QT 5 学习笔记-学习绘图相关+画图形图片等+绘图设备+基础学习(2)】
[QT 5 学习笔记-学习绘图相关+画图形图片等+绘图设备+基础学习(2)] 1.说明 2.实验环境 3.参照连接 4.自己的学习与理解 5.学习与实践代码 (1)移动图片测试实验 (1)继续之前的工 ...
- JavaScript学习笔记(一)--JS基础【入门必看】
JS介绍 JavaScript诞生于1995年,当时的主要目的是为了运行在浏览器中进行简单的表单验证.经过一系列的发展,现在的JavaScript既可以作为浏览器脚本语言,运行在浏览器进行表单验证.页 ...
- Unity学习笔记5 unity的js转c#
上一篇已经说过,unity的js是一种变种的js,和真正的js还是有区别的,所以有时候会给人一种有点不伦不类的感觉--如果对于完全没有编程基础的人来说,建议一开始就直接学c#吧,不要浪费时间去学js. ...
- 【JS学习笔记】基于自学的JavaScript学习笔记(1)JS教程与简介
JavaScript学习目录 为什么要学习JS以及怎么学习 第一课时:JS教程与简介 1.什么是JavaScript? 2.JS定义: 3.JS作为脚本语言的特点 4.我能学习到什么? Sum Cha ...
- fetchxml 汇总_Dynamic CRM 2013学习笔记(十七)JS读写各种类型字段方法及技巧
我们经常要对表单里各种类型的字段进行读取或赋值,下面列出各种类型的读写方法及注意事项: 1. lookup 类型 清空值 var state = Xrm.Page.getAttribute(" ...
- Flex学习笔记[1]:AS与JS的相互通信
环境:Flex Builder 3(AS3.0) 测试:点击客户端button,底层背景左下移动200px,flex绘制的三角的填充色由0x000000(黑)变0x00ffff(淡蓝)色 注意事项:1 ...
- 《MySQL实战45讲》——学习笔记04-05 “深入浅出索引、最左前缀原则、索引下推优化“
04 | 深入浅出索引(上) 1. 什么是索引? 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样,书有500页,每页存的都是书的内容,目录可能只有5页,只存了页码:通过目录能快速找到某个主 ...
- Flutter学习笔记学习资料推荐
对Flutter的学习已经有一段时间了,这里做一下总结记录,东西比较多,可能主要是一些学习资料的记录,还有一些杂七杂八的学习笔记. 文章目录 Flutter 初体验 Flutter 环境配置 Flut ...
最新文章
- db9针232接口波特率标准_RS232和RS485与RS422接口的基础知识详细介绍
- Linux下安装PHP7.1并做关联APACHE处理
- avue form提交变为不可编辑_教程42——富文本编辑器的原理(项目)
- 欢乐纪中某B组赛【2019.1.21】
- Delphi XE7 用indy开发微信公众平台(3)- 验证消息真实性
- 【Linux内核之旅】eBPF C语言入门架构
- .Net魔法堂:史上最全的ActiveX开发教程——部署篇
- [转]Windows 性能监视器工具-perfmon
- linux 查看内存条详情命令
- 汉字书写解码_汉字密码 | 500个字根即可解码10万个汉字,《说文解字》的神功...
- php 美化登录页面,把你的WordPress登录页面进行CSS美化
- 马斯克被曝曾骚扰机上空乘 SpaceX支付25万美元和解
- 弗洛伊德(floyd)算法核心代码
- 字体样式字体分类字体样式二
- Re:从零开始的领域驱动设计
- SpringSecurity退出登录logout报错404
- 软件过程与管理学习之:项目计划(Project Schedule)
- 备战2020年大学生电子设计大赛
- 收藏|Java程序员必看的几本基础书籍和常用工具
- 蚂蚁金服崔恒斌:金融智能——对话机器人新形态