node.js中exports和module.exports的区别
module.exports对象是由模块系统创建的。在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容module.exports提供了暴露接口的方法。
exports 使用方法
exports.[function name] = [function name]
moudle.exports使用方法
moudle.exports=[function name]
二者的根本区别是
exports 返回的是模块函数
module.exports 返回的是模块对象本身,返回的是一个类
使用上的区别是exports的方法可直接调用
module.exports需要new对象之后才可以调用
require`: node 和 es6 都支持的引入
export / import` : 只有es6 支持的导出引入
module.exports / exports`: 只有 node 支持的导出
CommonJS
定义的模块分为: 模块标识(module
)、模块定义(exports
) 、模块引用(require
)
export 和 export default
export与export default均可用于导出常量、函数、文件、模块等
在一个文件或模块中,export、import可以有多个,export default仅有一个
通过export方式导出,在导入时要加{ },export default则不需要
export能直接导出变量表达式,export default不行。
require
: node 和 es6 都支持的引入
export / import
: 只有es6 支持的导出引入
module.exports / exports`: 只有 node 支持的导出