Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到。
模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块。

// a.js
// 在模块内部定义变量
let version = 1.0;
// 在模块内部定义方法
const sayHi = name => `您好, ${name}`;
// 向模块外部导出数据
exports.version = version;
exports.sayHi = sayHi;
require(id)
// b.js
// 在b.js模块中导入模块a
let a = require("./b.js");
// 输出b模块中的version变量
console.log(a.version);
// 调用b模块中的sayHi方法 并输出其返回值
console.log(a.sayHi("FELaoL"));
导入模块时后缀可以省略。
module.exports对象由Module系统创建,有时候这是不可接受的;许多人希望他们的模块是某个类的实例。为此,将所需的exports对象分配给module.exports。将所需的对象分配给exports智慧重新绑定本地exports变量,这可能不是所需要的。
module.exports.version = version;
module.exports.sayHi = sayHi;
exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准。
exports是引用module.exports的值。module.exports被改变的时候 ,exports不会改变,而模块导出的时候,真正导出的执行是module.exports,而不是exports,当module.exports改变时,exports与module.exports也就断开了连接。
module.exports可以直接赋值,例如module.exports=1,而exports不能直接赋值
module.exports = 1; //right 1
exports = 1; //err {}
如果你感觉文章不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L;~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!