Node 导入模块:require()和导出模块:module.exports、exports的用法及注意点

December 17, 2023
测试
测试
测试
测试
2 分钟阅读

1、require()导入模块

注意:使用require方法加载模块,会执行被加载模块中的代码

/* 模块有三大分类:内置模块、自定义模块、第三方模块 */

/* 示例:使用require方法加载模块 */
// 注意:使用require方法加载模块,会执行被加载模块中的代码
// 1、加载内置模块
const fs = require('fs')
// 2、加载自定义模块
const riven = require('./riven-custom')
// 3、加载第三方模块(第三方模块需要我们先下载才能使用)
const moment = require('moment')

2、module.exports、exports导出模块

注意:require()导入模块时,得到的永远是module.exports指向的对象

console.log('这是我的自定义模块:Riven-custom');

/* 时刻谨记,require()模块时,得到的永远是module.exports指向的对象*/
// module.exports===exports(只是在默认情况下全等,指向改变后不是全等)

/* 指向误区:谨记以module.exports指向的对象为准 */
// 1、2指向的是不同的对象,3、4指向的是同一个对象

// 1、指向:{ username: '李四' }
exports.username = '张三'
module.exports = {
    username: '李四'
}

// 2、指向:{ username: '张三' }
module.exports.username = '张三'
exports = {
    username: '李四'
}
// module.exports===exports?: false
console.log('module.exports===exports?:', module.exports === exports)

// 3、指向:{ username: '张三', age: 18 }
exports.username = '张三'
module.exports.age = 18

// 4、指向:{ username: '张三', age: 18, sex: '男' }
exports = {
    username: '张三',
    age: 18
}
module.exports = exports
module.exports.sex = '男'
// module.exports===exports?: true
console.log('module.exports===exports?:', module.exports === exports)

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多