尝试在discord.js中生成第二个命令处理程序时出现目录错误
我是个初学者,不知道发生了什么事。我很确定我只是把目录格式化错了。我创建了一个命令处理程序,在其中一个可执行文件中,我试图实现第二个命令处理程序。我复制了原件,并将其格式化为该目录。当我运行程序时,我得到以下信息:错误:enoint:没有这样的文件或目录,scandir./duels'尝试在discord.js中生成第二个命令处理程序时出现目录错误,discord.js,Discord.js,我是个初学者,不知道发生了什么事。我很确定我只是把目录格式化错了。我创建了一个命令处理程序,在其中一个可执行文件中,我试图实现第二个命令处理程序。我复制了原件,并将其格式化为该目录。当我运行程序时,我得到以下信息:错误:enoint:没有这样的文件或目录,scandir./duels' const fs = require('fs'); const Discord = require('discord.js'); const config = require('../config.json');
const fs = require('fs');
const Discord = require('discord.js');
const config = require('../config.json');
const client = new Discord.Client();
const { prefix, token } = require('../config.json');
client.duels = new Discord.Collection();
const duelFiles = fs.readdirSync('./duels').filter(file => file.endsWith('.js'))
for (const file of duelFiles) {
const command = require(`./duels/${file}`);
client.commands.set(duel.name,duel);
}
module.exports = {
name: 'duel',
description: 'fight your friends!',
execute(message,args) {
try{
if (args[0].startsWith('<@')){
const opponent = args[0];
const attacker = message.author.username;
const duel = args[1];
if(!client.duels.has(duel)) {
message.reply(`bro that duel type doesn't exist \n\`please use this format: ${prefix}duel @person [duel type]\` \nfor a list of duels, type ${prefix}duelhelp`)
return;
}
try {
client.duels.get(duel).execute(message,args);
} catch (error) {
console.error(error);
message.reply(`bro that duel type doesn't exist`)
}
} else {message.reply(`you gotta mention a person with @ \n\`please use this format: ${prefix}duel @person [duel type]\``)}
} catch (error) {
console.error(error);
message.reply(`yeah ok, duel. what does that mean?? \n\`please use this format: ${prefix}duel @person [duel type]\``)
}
}
};
const fs=require('fs');
const Discord=require('Discord.js');
const config=require('../config.json');
const client=new Discord.client();
const{prefix,token}=require('../config.json');
client.duels=新建Discord.Collection();
const duelFiles=fs.readdirSync('./duels').filter(file=>file.endsWith('.js'))
for(双文件的常量文件){
const command=require(`./duels/${file}`);
client.commands.set(duel.name,duel);
}
module.exports={
名字:'决斗',
描述:“与你的朋友战斗!”,
执行(消息,参数){
试一试{
if(args[0]。startsWith('相对文件路径对node.js的不同部分的工作方式不同。require
将相对于当前文件解释它们,即,哪个文件实际包含require
语句。但文件i/o相对于当前工作目录(CWD)-这将是您执行程序的地方
考虑到这一点,您需要替换以下内容:
fs.readdirSync('./duels')
为此:
fs.readdirSync('./commands/duels')
对于node.js的不同部分,相对文件路径的工作方式不同。require
将相对于当前文件解释它们,即哪个文件实际包含require
语句。但是文件i/o相对于当前工作目录(CWD)-这将是执行程序的位置
考虑到这一点,您需要替换以下内容:
fs.readdirSync('./duels')
为此:
fs.readdirSync('./commands/duels')
你有一个单独的文件名为duels.js吗?这是我的文件系统你有一个单独的文件名为duels.js吗?这是我的文件系统@lemon,如回答中所述,require
解释相对于包含require
语句的文件的相对路径。看起来你将代码更改为read require(`./commands/duels/${file}`)当它仍然需要时(`./duels/${file}`)得到了它。我如何在嵌套文件夹中获取config.json?我不知道如何口述两个文件夹。@lemon使用。
(两个点)进入一个文件夹,就像您在上面的代码片段中所做的那样。您可以多次这样做,例如require('../../config.json')
非常感谢。@lemon如回答中所述,require
解释相对于包含require
语句的文件的相对路径。看起来您将代码更改为require(`./commands/duels/$${file}`),而它应该仍然是require(`./duels/${file}`)明白了。我如何在嵌套文件夹中获取config.json?我不知道如何口述两个文件夹。@lemon使用。
(两个点)向上移动一个文件夹,就像您在上面的代码片段中所做的那样。您可以多次这样做,例如需要('../.config.json')
非常感谢。