You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:25:17