错误:找不到模块“ ./commands/${f}1”

时间:2020-08-08 09:03:10

标签: javascript node.js discord discord.js

我一直试图让我的机器人上线几个小时,但我一直遇到相同的错误。

这是错误:

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还是很陌生,所以我不知道要输入什么...我从教程中复制了代码,所以我不知道发生了什么。

2 个答案:

答案 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