Node JS 模块化导入导出

模块化导入和导出 基础

CommonJS

是Node JS的规范

http://nodejs.cn/api/module.html

代码示例

导出
let a = 1;
function fun () {
  console.log(a);
}

exports.a = a;
exports.fun = fun;
导入
let example = require('./example');
example.a

这里的 exports 就是导出的模块,
然后导入的 require 就是会把 exports 的对象赋值过来

这个 exports 是对 module.exports 的一个应用, 所以我们也可以使用 module.exports 来进行导出.

那么,这两个的区别是什么呢?
简单来说, 就像是在 Node JS 内部, 让 exports = module.exports 产生了指向.
所以这里最大的区别就是 直接将 exports = x, 这样因为这个会直接修改 exports 的指向,
所以导出就并没有出现.所以如果要直接只导出一个对象的化,就需要使用 module.exports 而非 exports 了.

例如:

这种直接赋值, 会因为原来指向的是一个地址, 因为赋值改变了指向,导出时就没有了 导出就是一个 {}
exports = 1;
exports = () => {console.log(1)};
所以就要使用这个方式进行导出, 避免了地址指向的改变.
module.exports = 1;
posted @ 2021-10-10 17:10  tallgy  阅读(150)  评论(0编辑  收藏  举报