1. exports , module.exports 是nodeJS语法,用于暴露模块对象
2. exports 是对 module.exports的引用。
3. exports 可以添加属性和方法,不能赋值改指向
4. module.exports 才是真正的暴露对象,指向哪里,就暴露哪里,可以添加属性和方法,可以赋值改指向(推荐使用)
require是Commonjs的规范,node应用是由模块组成的,遵从commonjs的规范
1. export、export default 是 es6 语法, 都可以用于导出常量,函数,文件,模块等
2. 可以在模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
3. 在一个文件或者模块中,export,import可以有多个,但是export default只能有一个。
4. 通过export方式导出,在导入的时候需要加{},export default不需要在导入的时候加{}
import是es6为js模块化提出的新的语法,import (导入)要与export(导出)结合使用
1.前提
node 运行js文件。
一个文件就是一个模块,编写这个模块中的代码,实际上都写在一个函数中,这样就保证了局部变量,模块独立,不会对外部模块造成影响
2. require函数
require是Commonjs的规范,node应用是由模块组成的,遵从commonjs的规范
作用:在当前模块中加载另外一个模块
模块分类:
1.自定义模块: require("./*** )
a.自定义模块没有暴露数据时,返回空对象
b.自定义模块必须加 ./
2. 第三方模块,
安装可以使用npm包管理
3. 系统模块,
不需要安装
如 path、 fs、url、http
require函数注意事项:
a.引入模块有语法错误时会报错
b.引入模块不存在时会报错
c.重复引入模块只执行一次
3.exports导出对象、module.exports
作用:将模块中需要共享给其他模块的数据暴露到引用处
语法:exports.属性名=值;
exports.方法名=值;
注意: a. exports 是 modules.exports对象的引用
b. exports是一个对象,可以对它添加属性和方法,不能改指向
console.log(exports===module.exports); // true 二者指向同一个内存空间
4.module模块对象