在nodeJS中可以通过require(模块名)来引入需要的模块,那么我们怎么导出模块呢,导出模块的方法有exports和module.exports这两种。
一、区别
1.exports
exports方法是导出一个对象,一般的写法是exports.xxx = yyy,这个yyy才是我们想要的值,示例代码如下。
foo.js
var a = 1;
exports.b = a;
bar.js
var c = require("./foo.js");
console.log(c.b);
变量c是我们通过require方法引入的对象,c有一个属性b,b对应的值是foo.js里需要导出的值为1的a这个变量。
2.module.exports
module.exports方法可以直接导出我们想要导出的那个变量,无论它是Object还是Function,看一段示例代码。
foo.js
var a = 1;
module.exports = a;
bar.js
var c = require("./foo.js");
console.log(c);
变量c就是我们想要的值为1的变量a。
二、联系
exports实际上是对module.exports的引用,Object对象是通过引用存储的,所以exports方法最终都是导入的module.exports导出的东西。
注意:
通过exports导出的模块,如果引入这个模块并且赋给一个变量后改变这个变量的某个属性或者值,那么这个变量指向的实际值已经不是你要的那个值了。
如有错误,请及时指正