module.exports可以单独的定义,返回数据类型,而export只能是返回一个object对象。如
module.exports=['劳黑炭','百度经验','module.exports'];//正确
exports=['劳黑炭','百度经验','module.exports'];//报错
你可以用它创建你的模块。例如:(假设这是rocker.js文件)
复制代码
代码如下:
exports.name = function() {
console.log('My name is Lemmy Kilmister');
};
在另一个文件中你这样引用
复制代码
代码如下:
var rocker = require('./rocker.js');
rocker.name(); // 'My name is Lemmy Kilmister'
那到底Module.exports是什么呢?它是否合法呢?
其实,Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。
所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。