深入浅出Node.js - 模块加载(2.2)
1.加载模块的3个步骤
- 路径分析
- 文件定位
- 编译执行
2.加载顺序
- 优先从缓存加载(无论是核心模块还是文件模块,都优先从缓存加载)
- 核心模块的缓存检查先于文件模块的缓存检查
- 缓存中没有的再通过路径分析、文件定位、编译执行加载
3.路径分析、文件定位、模块编译
1.加载模块的3个步骤
2.加载顺序
3.路径分析、文件定位、模块编译
1.Node的特点
child_process
javascript
执行在单线程中而已,内部I/O另有线程池libuv
实现跨平台 2.Node的应用场景
1.我们将 <script>
元素放在 HTML 文件底部的原因是,浏览器解析 HTML 似乎按照代码出现的顺序来的。如果 JavaScript被首先读取,它也应该影响下面的 HTML,但有时会出现问题,因为 JavaScript 会在 HTML 之前被加载,如果 JavaScript 代码出现问题则 HTML 不会被加载。所以将 JavaScript 代码放在底部是最好的选择。
2.JS中的每一行都应该以一个分号结尾,以表明这一行的结束。如果你不这样做,可能会遇到意想不到的结果。
3.变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。
JavaScript各进制转换
ECMAScript部署进度检测工具
FSCapture
ZoomIt
everything
teracopy
PowerCmd
Sublime Text
Ultra Edit
Beyond Compare
PDFEdit
Clover
CCleaner
VirtualBox
VMware Player
mRemote/mRemoteNG
InletexEMC
TeamViewer
1 | vagrant init # 初始化 vagrant up # 启动虚拟机 vagrant halt # 关闭虚拟机 vagrant reload # 重启虚拟机 vagrant ssh # SSH 至虚拟机 vagrant status # 查看虚拟机运行状态 vagrant destroy # 销毁当前虚拟机 |
1.superagent:客户端请求代理模块,抓取页面用的(lession3)
2.cheerio:Node.js版的JQuery(lession3)
3.eventproxy:可以控制异步并发(lession4)
4.async:可以控制异步并发,并且可以自定义并发数(lession5)
5.should:断言库,用于后端测试,和mocha组合使用(lession6)
6.mocha:测试框架(lession6)
使用场合不一样:
supervisor 是开发环境用。
forever 管理多个站点,每个站访问量不大,不需要监控。
pm2 网站访问量比较大,需要完整的监控界面。
告别node-forever,拥抱PM2