-
首先我们建立如下文件夹
-
- 在【exports.js】里,我们写入要输出的内容
console.log(module.exports === exports) // true
exports.a = 123;
exports.b = 456;
exports.c = 789;
- 在【text.js】里,我们把【exports.js】模块引用过来
// 如果模块不在 node_modules目录下,引用需要加 ./
var mod = require('./exports');
console.log(mod.a,mod.b,mod.c)
注意:当前我们【exports.js】模块不在【node_modules目录】下,我们引用自己定义的模块需要在前面加 【./】
-
执行命令【node text.js】,我们会发现【exports === node_modules】是成立的,并且引用自定义模块成功。
-
- 【exports】是单个数据进行输出、【module_exports】可以多个数据进行输出,我们修改【exports.js】模块输出
console.log(module.exports === exports) // true
/* exports.a = 123;
exports.b = 456;
exports.c = 789; */
module.exports = {a:123,b: 456,c:789}
-
再次执行命令行【node text.js】,会发现引用模块后获取的数据是和【exports】输出内容是一样的
-
备注:
1. require 是引用模块,引用时如果加【./】是从当前目录上引用模块。如果从【系统模块】和【node_modules目录下】引用模块,不需要加【./】
// .js 可以写也可以不写
var mod = require('./export.js')
2. exports 是【单个】输出模块里的数据,比较繁琐。
exports.a = 123;
3.module.exports 是【批量】输出模块里多个数据,跟exports相比更方便。
module.exports = {a:1, b: 2, c:3}
4. exports 和 module.exports是全等的。
console.log(module.exports === exports) // true
5. 模块里没有全局变量
(function(require,exports, module) {
var b = 5;
var a = 3;
})()
exports.a = 12