在自定义模块中,可以使用 module.exports 对象,将模块内的成员共享出去,供外界使用外界用 require0方法导入自定义模块时,得到的就是module.exports 所指向的对象
- //在一个自定义模块中,默认情况下module.exports = {}
- // 向 module.exports 对象上挂载 username 属性
- module.exports.username = 'zs'
- // 向 module.exports 对象上挂载 sayHello 方法
- module.exports.sayHello = function() {
- console.log('Hello!')
- }
- const age = 20
- module.exports.age = age
-
-
-
-
- // 在外界使用 require 导入一个自定义模块的时候,得到的成员
- // 就是 那个模块中,通过 module.exports 指向的那个对象
- const m = require('./自定义模块.js')
- console.log(m)//{lusername:'zs',sayHello:[Function],age:20 }
ps:使用require方法导入模块时,导入结果永远以module.exports指向对象为准
- //模块
- module.exports.username = 'zs'
- module.exports={
- age:'20'
- }
- //使用
- const m = require('./自定义模块.js')
- console.log(m)//{age:20 }
由于 module.exports 单词写起来比较复杂,为了简化向外共享成员的代码,Node 提供了 exports 对象。默认情况下,exports 和 module.exports 指向同一个对象。最终共享的结果,还是以 module.exports 指向的对象为准。(exports === module.exports)
ps:使用require()模块时,得到的永远是module.exports指向的对象
- //-------------1-------------------
- //模块
- exports.username = 'zs'
- module.exports={
- age:'20'
- }
- //使用
- const m = require('./自定义模块.js')
- console.log(m)//{age:20 }
- //--------------2------------------
- //模块
- module.exports.username = 'zs'
- exports={
- age:'20'
- }
- //使用
- const m = require('./自定义模块.js')
- console.log(m)//{username:'zs' }
- //--------------3------------------
- //模块
- exports.username = 'zs'
- module.exports.age = 20
- //使用
- const m = require('./自定义模块.js')
- console.log(m)//{username:'zs', age:20 }