如何从.js文件导出对象供主文件调用?Node.js CommonJS导入导出问题求解
Node.js 跨文件变量导出导入修复方案
问题根因
queue.js中重复对module.exports赋值,第一次导出的lista被后续的赋值完全覆盖,最终导出的对象中不包含lista属性bot.js中执行require操作后没有接收返回值,lista不会自动注入到当前文件的作用域,直接访问会触发未定义错误
修复步骤
1. 调整queue.js导出逻辑
不要分开两次给module.exports赋值,将lista合并到最终的导出对象中即可:
const { google } = require("googleapis"); const play = require('play-dl'); const lista = [] module.exports = { lista, // 你原本需要导出的其他属性继续写在这里 // ... 原有导出内容 }
2. 调整bot.js导入逻辑
接收require返回的导出对象,再从中取出lista使用:
// 写法1:先接收整个导出对象再取值 const queueModule = require(`./commands/queue.js`) const lista = queueModule.lista console.log(lista) // 写法2:直接解构取值(更简洁) // const { lista } = require(`./commands/queue.js`) // console.log(lista)
内容的提问来源于stack exchange,提问作者Cristian David Moraleda
相关产品推荐
相关产品推荐

