我一直试图让我的机器人上线几个小时,但我一直遇到相同的错误。
这是错误:
Error: Cannot find module './commands/${f}1'
Require stack:
- C:\Users\Apskaita\Desktop\Viper bot\main.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
at Function.Module._load (internal/modules/cjs/loader.js:841:27)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at require (internal/modules/cjs/helpers.js:72:18)
at C:\Users\Apskaita\Desktop\Viper bot\main.js:20:22
at Array.forEach (<anonymous>)
at C:\Users\Apskaita\Desktop\Viper bot\main.js:19:12
at FSReqCallback.oncomplete (fs.js:156:23) {
code: 'MODULE_NOT_FOUND',
requireStack: [ 'C:\\Users\\Apskaita\\Desktop\\Viper bot\\main.js' ]
}
这是我的main.js代码:
const Discord = require('discord.js');
const client = new Discord.Client();
const botconfig = require('./botconfig.json');
const fs = require("fs");
client.commands = new Discord.Collection();
client.alieses = new Discord.Collection();
// READ COMMANDS FOLDER
fs.readdir("./commands/", (err, files) => {
if(err) console.log(err);
let jsfile = files.filter(f => f.split(".").pop() === "js")
if(jsfile.length <= 0) {
console.log("couldin't file any commands!");
return;
}
jsfile.forEach((f) => {
let preops = require("./commands/${f}1")
console.log('${f} loaded!');
bot.commands.set(props.help.name, props);
props.help.aliases.forEach(alias => {
bot.aliases.set(alias, props.help.name);
})
})
})
// BOT ONLINE MESSAGE AND ACTIVITY MESSAGE
client.on('ready', async () => {
console.log('${bot.user.username} is online on ${bot.guilds.size} servers!')
bot.user.setActivity('with ${bot.guilds.size} servers!');
})
client.on('message', async message => {
// CHECK CHANNEL TYPE
if(message.channel.type === "dm") return;
if(message.author.bot) return;
// SET PREFIX
let prefix = botconfig.prefix;
// CHECK PREFIX, DEFINE ARGS & COMMAND
if(message.content.startsWith(prefix)) return;
let args = message.content.slice(prefix.length).trim().split(/ +/g);
let cmd;
cmd = args.shift().toLowerCase();
let command;
let commandfile = bot.commands.get(cmd.slice(prefix.length));
if(commandfile) commandfile.run(bot, message, args);
//RUN COMMANDS
if(bot.commands.has(cmd)) {
command = bot.commands.get(cmd);
} else if (bot.aliases.has(cmd)) {
command = bot.commands.get(bot.aliases.get(cmd));
}
try {
command.run(bot, message, args);
} catch (e) {
return;
}
client.login(botconfig.token)})
我的ping.js:
module.exports.run = async (bot, message, args) => {
const m = await message.channel.send("ping!");
m.edit("Pong! ${m.createTimestamp - message.createdTimestamp}ms");
}
module.exports.help = {
name: "",
aliases: ["p"]
}
这些错误非常令人困惑,我真的不知道如何解决它们,所以请有人可以解决吗?
我对JavaScript还是很陌生,所以我不知道要输入什么...我从教程中复制了代码,所以我不知道发生了什么。
答案 0 :(得分:1)
您使用的引号不正确,您使用的是"
而不是`
替换
jsfile.forEach((f) => {
let preops = require("./commands/${f}1")
console.log('${f} loaded!');
bot.commands.set(props.help.name, props);
props.help.aliases.forEach(alias => {
bot.aliases.set(alias, props.help.name);
})
})
通过
jsfile.forEach((f) => {
let preops = require(`./commands/${f}1`)
console.log(`${f} loaded!`);
bot.commands.set(props.help.name, props);
props.help.aliases.forEach(alias => {
bot.aliases.set(alias, props.help.name);
})
})
答案 1 :(得分:0)
这意味着路径不正确。首先,请务必使用前面所说的好引号。然后,您确定文件名末尾有一个1
吗?这就是您要问的${f}1
。