2019-12/es6

node.js中exports和module.exports的区别


        

module.exports对象是由模块系统创建的。在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容module.exports提供了暴露接口的方法。

  1. exports 使用方法

    exports.[function name] = [function name]

  2. 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 支持的导出