1.案例代码
moduleIndex.js
// module.exports与exports指针指向同一个空对象,也就是说module.exports===exports
// module.exports与exports区别说明
// 1.使用require导入模块时,得到的永远是module.exports指向的对象,也就是说不管exports暴露的对象是什么,module.exports没有暴露对象,那么使用require导入模块时得到的是空对象
// exports = {
// userName:"绫小路",
// say(){
// console.log('欢迎来到实力至上主义的教室');
// }
// }
// 2.如果既有module.exports又有exports的时候,就会以module.exports暴露的对象为准,也就是说module.exports权重更高一点
// module.exports.content = 'kanno'
// module.exports.say = ()=>{
// console.log("Hello!");
// }
// exports = {
// userName:"绫小路",
// say(){
// console.log('欢迎来到实力至上主义的教室');
// }
// }
// 3.当exports使用'.'的方式添加属性时,就算没有使用module.exports暴露对象,
// 在使用require导入模块式时可以获得exports暴露的对象属性,
// 相当与给module.exports的空对象插入了exports暴露的对象属性
// exports.userName = "绫小路"
// 4.当exports使用'{}'的方式添加属性,同时将exports赋值给module.exports时,
// exports暴露的对象也可以在require导入模块的时候获取相应的对象属性
exports = {
userName:"绫小路",
say(){
console.log('欢迎来到实力至上主义的教室');
}
}
module.exports = exports;
module.exports.content = 'kanno'
module.exports.say = ()=>{
console.log("Hello!");
}
// 什么是npm
// 在node.js中有许多的第三方模块(简称包),npm.Inc公司提供了一个专门查询这些第三方包的网址https://www.npmjs.com/;
// 查询到了想要的包后就需要下载,那么npm.Inc公司提供了一个下载这些第三方包的服务器地址https://registry.npmjs.org/;
// npm的全称是Node Package Manageer(简称npm包管理工具),使用这个工具就可以下载我们常说的插件(工具),其实就是第三方包;
// 这个包管理工具随着Node.js的安装就会一起安装好,所以前端开发需要的环境node.js是必不可少的
useModuleIndex.js
const kanno = require('./13module.exports的使用1')
console.log('kanno',kanno,kanno.userName);
kanno.say()
2.说明
module.export与export区别可以