首页 > 解决方案 > 如何修复“UnhandledPromiseRejectionWarning:ReferenceError:内容未定义”

问题描述

我正在研究机器人。我使用了示例机器人中的 ping 模板,但是当我使用它不起作用的命令时它。

(node:5696) UnhandledPromiseRejectionWarning: ReferenceError: content is not defined
    at Client.<anonymous> (D:\bipbot\index.js:18:5)
    at Client.emit (events.js:210:5)
    at MessageCreateHandler.handle (D:\bipbot\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
    at WebSocketPacketManager.handle (D:\bipbot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
    at WebSocketConnection.onPacket (D:\bipbot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (D:\bipbot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
    at WebSocket.onMessage (D:\bipbot\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:210:5)
    at Receiver.receiverOnMessage (D:\bipbot\node_modules\ws\lib\websocket.js:789:20)
    at Receiver.emit (events.js:210:5)

这是我使用 ping 命令时得到的。

import { Client } from "discord.js";
const client = new Client();
import { prefix, token } from "./config.json";

client.on('ready', () => {
  console.log(`Запущено. Используется в качестве пользователя ${client.user.tag}!`);
  client.user.setActivity(`Используется префикс ${prefix}.`)
});

client.on("guildCreate", guild => {
    //Логи присоединения к серверу
    console.log(`Присоединлся к серверу ${guild.name}. ID сервера - ${guild.id}. `)
});

client.on("message", async message => {
    if(content.author.bot) return;
    if(message.content.indexOf(prefix) !== 0) return;


    const args = message.content.slice(prefix.length).trim().split(/+/g);
    const command = args.shift().toLowerCase();

    //Команды. Не дай Монолит ты их начнешь писать выше.

    if(command === 'ping')  {
        const m = await message.channel.send(`Пинг? :thinking:`);
        m.edit(`Понг! Задержка равна ${m.createdTimestamp - message.createdTimestamp}мс. Задержка API равна ${Math.round(client.ping)}мс.`);
    };

是看起来坏掉的部分。

标签: javascriptnode.jsdiscord.js

解决方案


if(content.author.bot) return;

正如错误所说,content未定义。您可能打算这样做:

if(message.author.bot) return;

推荐阅读