【发布时间】:2021-09-06 03:30:48
【问题描述】:
您好,我正在尝试重写一些代码,其中机器人在特定文件夹中加载 .js 文件。 最初,要访问文件夹,我会从中加载命令文件,我会执行以下操作并重复相同的代码来访问不同的文件夹:
fs.readdirSync("../src/Commands/Moderation")
.filter(file => file.endsWith(".js"))
.forEach(file => {
const command = require(`../Commands/Moderation/${file}`);
console.log(`Command ${command.name} loaded`);
this.commands.set(command.name, command);
});
但是,我想要一个比上述更好的方法。正如您在上面的代码中看到的,我想在名为 Moderation 的文件夹中加载一个 js 文件,请记住我在文件夹 \Commands 中有多个包含 .js 文件的文件夹。
我想尝试加载命令的第二种也是首选方法会出现一些问题。
下面是我想要做的代码,但是我收到控制台错误Error: Cannot find module '../src/Commands/Moderators/colours.js'。 colours.js 文件确实存在于该目录中。我无法确定问题出在哪里。
fs.readdirSync("../src/Commands/").forEach(dir => {
const commandfiles = fs.readdirSync(`../src/Commands/${dir}/`).filter(f =>
f.endsWith('.js'));
for (const file of commandfiles) {
const command = require(`../src/Commands/${dir}/${file}`);
console.log(`Loading ${command.name}`, "cmd");
this.commands.set(command.name, command);
项目结构:
Users/
Jac/
Desktop/
jacbot/
src/
├─ main.js
├─ Structures/
├─ Commands/
│ ├─ Moderation/
│ │ ├─ colours.js
├─ Data/
│ ├─ config.json
├─ Events/
│ ├─ messages.js
任何帮助将不胜感激。
【问题讨论】:
-
你能分享一下你的项目结构吗?
-
确定我的项目结构是 ../src/Commands/Moderation/Files.js 我假设你是这个意思。
-
不,我指的是文件的位置,例如this。错误可能是因为路径
-
@Joe 我已将项目结构添加到我的问题中。
标签: javascript node.js discord.js