Discord机器人开发遇ENOENT错误:指定目录不存在,求解决方案
解决Discord机器人启动的ENOENT目录不存在错误
复制教程代码后运行机器人出现以下错误:
node:internal/fs/utils:347 throw err; ^ Error: ENOENT: no such file or directory, scandir './src/functions/${folder}' at Object.readdirSync (node:fs:1438:3) at Object.<anonymous> (C:\Users\Redux Gamer\Desktop\Js\discord\univenture\src\bot.js:12:30) at Module._compile (node:internal/modules/cjs/loader:1155:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10) at Module.load (node:internal/modules/cjs/loader:1033:32) at Function.Module._load (node:internal/modules/cjs/loader:868:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:22:47 { errno: -4058, syscall: 'scandir', code: 'ENOENT', path: './src/functions/${folder}' }
尝试过以下操作但无效:
npm update npm install node node_modules/node-sass/scripts/install.js npm rebuild node-sass
附上bot.js代码:
require('dotenv').config() const { token } = process.env const { Client, Collection, GatewayIntentBits } = require('discord.js') const fs = require('fs') const client = new Client({ intents: GatewayIntentBits.Guilds }) client.commands = new Collection() client.commandArray = [] const functionFolders = fs.readdirSync('./src/functions') for (const folder of functionFolders) { const functionFiles = fs.readdirSync('./src/functions/${folder}').filter((file) => file.endsWith(".js")) for(const file of functionFiles) require('./functions/${folder}/${file}')(client) } client.handleEvents() client.handleCommands() client.login(token)
问题根源
代码里的路径字符串用了单引号,导致模板变量${folder}没有被解析成实际的文件夹名称,而是被当成了路径的一部分,所以Node.js找不到./src/functions/${folder}这个目录。
解决方案
把涉及路径拼接的两行代码里的单引号换成反引号(键盘左上角~键对应的符号),这样模板字符串才能正确解析变量:
for (const folder of functionFolders) { // 替换单引号为反引号 const functionFiles = fs.readdirSync(`./src/functions/${folder}`).filter((file) => file.endsWith(".js")) // 替换单引号为反引号 for(const file of functionFiles) require(`./functions/${folder}/${file}`)(client) }
修改后重新运行机器人即可,之前执行的npm相关操作和这个问题无关,无需重复执行。
内容的提问来源于stack exchange,提问作者Cavia Power
相关产品推荐
相关产品推荐

