discord.js v14报错:loadFiles is not a function 求助
解决discord.js v14中loadFiles不是函数的报错问题
1. 核心问题:fileLoader.js的语法错误
你的fileLoader.js存在函数闭合逻辑错误,module.exports被误写在loadFiles函数内部,同时函数的结束大括号位置颠倒,导致模块无法正确导出该函数。
修复后的fileLoader.js代码:
const { glob } = require('glob'); const { promisify } = require("util"); const proGlob = promisify(glob); async function loadFiles(dirName){ const Files = await proGlob(`${process.cwd().replace(/\\/g, "/")}/${dirName}/**/*.js`); Files.forEach((file) => delete require.cache[require.resolve(file)]); return Files; } module.exports = { loadFiles };
2. 次要问题:eventHandler.js的拼写错误
你的eventHandler.js中存在数组方法拼写错误:Files.foreach应为Files.forEach(注意方法名首字母大写),不修复会导致后续加载事件时出现新报错。
修复后的eventHandler.js对应代码段:
Files.forEach((file) => { const event = require(file); const execute = (...args) => event.execute(...args, client); client.events.set(event.name, execute); if(event.rest) { if(event.once) client.rest.once(event.name, execute); else client.rest.on(event.name, execute); } else { if(event.once) client.once(event.name, execute); else client.on(event.name, execute); } table.addRow(event.name, "✅") })
错误原因总结
- fileLoader.js中函数结束大括号位置错误,导致
loadFiles函数定义不完整,且导出语句被包含在函数内部,require后无法获取到有效函数引用。 - eventHandler.js中误用了小写的
foreach,JavaScript数组的遍历方法标准写法是forEach。
内容的提问来源于stack exchange,提问作者Vortex864
相关产品推荐
相关产品推荐

