一、
module.exports和exports是属于 CommonJS 模块规范!
export和export default是属于ES6语法
同样import和require分别属于ES6和CommonJS!
二、
module.exports和exports、export和export default都是导出模块;
import和require则是导入模块。
所以现在就不要弄混了,module.exports导出对应require导入,export导出对应import导入。
三、module.exports和exports的区别与联系
讲到这里就不得不稍微提一下模块化:
Node应用由模块组成,采用CommonJS模块规范。
根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
通过export方式导出,在导入时要加{ },export default则不需要 使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名