export default与export属于ES6语法,module.exports与exports属于CommonJS规范
ES6语法:
导出: export {one, two, three, four, five}
,{}中为变量名/函数名
导入: import {one, two, three, four, five} from '模块路径'
或
导出: export default 变量|函数|文件|模块|etc
导入: import anyName from "模块路径"
-
export
可以在同一个模块中使用多次;而export default
则用于规定模块的默认对外接口,默认对外接口只能有一个,所以export default
只能在同一个模块中出现一次; - 使用
export
导出的模块,在引入模块的时候,须得使用{}进行包裹;而使用export default
导出的模块,在引入模块的时候,无需使用{}进行包裹;
CommonJS规范:
导出: module.exports = function() {};
导入: require('模块路径');
Node.js应用由模块组成,采用CommonJS模块规范。根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
每个模块内部,module
变量代表当前模块。这个变量是一个对象,它的exports
属性(即module.exports
)是对外的接口。加载某个模块,其实是加载该模块的module.exports
属性