Node.js中模块化开发规范
Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到。
模块内部可以使用exports对象进行成员导出, 使用require方法导入其他模块。
案例:a.js中的变量导入b.js中
第一步:先在a.js中将所需要的变量导出,方法有两种
exports方法
const fn = (x, y) => x + y;
exports.fn2 = fn; //第一个fn方法作为exports的属性值,第二个实现的fn函数
module.exports方法
const fn = (x, y) => x + y;
module.exports.fn2 = fn;
第二步:在b.js中导入所需要的变量
const a = require('./b.js'); //括号内写导入的变量所在的js文件的位置。
console.log(a.fn2(20, 20)); //.js可以省略
exports方法与module.exports方法的区别
exports是module.exports的别名(地址引用关系),当exports对象和module.exports对象指向的不是同一个对象是导出对象最终以module.exports为准。
var uname = uname => `我叫${uname}`;
var age = '18';
exports.uname = uname; //此时这两种写法是等价的
module.exports.age = age;
此时,如果让module.exports等于了一个其他的任何值
module.exports = 18;
exports = 19; //此时exports不生效
那么,当我们导出的时候是以module.exports为准。