Nodejs代码调试
总结:区分一下这节的几个英文单词
- module是模块的意思,node module就是node模块的意思
- export是导出的意思,也可以译为暴露。exports是export的复数形式
组合起来:module.exports
就是模块暴露,即此模块提供的接口或变量
- require是需要的意思,也可以译为引用,调用。
引用某个js文件或者模块,就是我想调用它暴露的接口,打成我的目的。
require其实还有一层含义按需加载的意思,比如我们常见的amd,cmd规范等,都是前端目前比较流行的按需加载规范,典型实现如seajs、requirejs
是不是又把requirejs和require打通了?
稍微八卦一下,nodejs里多次require一个模块的时候,它只会加载一次,这是nodejs的模块缓存机制,见https://nodejs.org/api/modules.html#modules_caching
另外typescript里,require了的模块,如无引用是不编译的,也算类似的按需加载的一种吧
现在,我们来总结一下,上面的几个英文词
- module
- exports
- require
其实是commonJS规范的核心的3个概念,而nodejs是commonJS规范的实现。
这就是为啥满大街的nodejs代码都长成这样的根本原因。
可以说,这才是nodejs真正的基础,如果不懂,你还真的好好看几遍
如何调试
3法3例子