node.js模块require和exports

node.js通过实现CommonJS的Modules/1.0标准引入了模块(module)概念,模块是node.js的基本组成部分,一个node.js文件就是一个模块,文件和模块是一一对应的关系。这个文件可以使javascript代码,json或者编译过的c/c++扩展。

node.js的模块分为两类:原生(核心)模块,文件模块。

在文件模块中分三类模块:
– .js :通过fs模块同步读取js文件并编译执行;
– .node : c/c++进行编写的Addon,通过dlopen方法进行加载;
– .json :读取文件,调用JSON.parse解析加载。

node.js提供exports和require两个对象,其中exports是模块公共接口,require用于从外部获取一个模块接口,即获取模块的exports对象。

require 用来加载代码,而 exports 和 module.exports 则用来导出代码。
require的详细分析 参考require() 源码解读