NodeJS模块化遵循了CommonJS规范,
根据CommonJS规范,每个文件就是一个模块,
NodeJS会为每一个JS文件生成一个module对象,这个module对象会有一个exports属性,
并且这个exports属性是一个空对象
exports 返回的是模块函数
module.exports 返回的是模块对象本身,返回的是一个类
- exports的方法,module.exports也是一定能完成的
exports.[function name] = [function name]
moudle.exports= [function name]
es6模块的区别
require: node 和 es6 都支持的引入
export / import : 只有es6 支持的导出引入
module.exports / exports: 只有 node 支持的导出
module.exports
module={
exports:{}
}
var app = {
name: 'app',
version: '1.0.0',
sayName: function(name){
console.log(this.name);
}
}
module.exports = app;
// 等价于
module.exports = {
name: 'app',
version: '1.0.0',
sayName: function(name){
console.log(this.name);
}
}
函数
module.exports = function(args){
this.args = args;
}