【问题标题】:Discord.js error = "message is not defined"Discord.js 错误 = “消息未定义”
【发布时间】:2018-10-23 10:36:01
【问题描述】:
const Discord = require('discord.js');

exports.run = async (bot, message, args) => {
    let userInfMent = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]))
    message.channel.send(userInfo(userInfMent));
    }

function userInfo(user) {
    const Discord = require('discord.js');
    let userInfMent = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]))
    var userCreated = userInfMent.createdAt.toString().split(' ');
    var lastMsg = userInfMent.lastMessage.createdAt.toString().split(' ')

    const userInfoEmbed = new Discord.RichEmbed()
    .addField('Никнейм: ', userInfMent.username)
    .addField('Тег: ', userInfMent.tag)
    .addField('ID: ', userInfMent.id)
    .addField('Аккаунт был создан: ', userCreated[1] + ', ' + userCreated[2] + ', ' + userCreated[3])
    .addField('Последнее сообщение: ', userInfMent.lastMessage + ' в ' + lastMsg[1] + ', ' + lastMsg[2] + ', ' + lastMsg[3] + ', ' + lastMsg[4])
    .addField('Статус: ', userInfMent.presence.status)
    .setColor('RANDOM')
    .setThumbnail(userInfMent.avatarURL);

    return userInfoEmbed
}

嗨。我是 Node.js 初学者。

当我启动命令时,在控制台中我看到错误:

(节点:6312)UnhandledPromiseRejectionWarning:ReferenceError:消息 没有定义 在 userInfo (C:\Users\deris\Desktop\Проекты\Node.js\discord.js\JSBot-master\commands\userinfo.js:10:23) 在 Object.exports.run (C:\Users\deris\Desktop\Проекты\Node.js\discord.js\JSBot-master\commands\userinfo.js:5:26)

【问题讨论】:

  • 这可能是从西里尔字母到“普通”字符的编码错误,也可能是代码错误。那么你能用“普通”字符来编写代码吗?

标签: javascript node.js discord discord.js


【解决方案1】:

message 仅在消息事件本身中定义。因此,您可以简单地将 message 对象作为参数传递给您的函数。

// new function 
function userInfo(user, message) {
    //code here
}

请记住,您必须在调用函数时添加附加参数。

message.channel.send(userInfo(userInfMent, message));

【讨论】:

    【解决方案2】:

    消息未定义,因为您没有将代码放在Message Event 中。

    【讨论】:

      【解决方案3】:

      我刚刚在学习,发现了这个。

      Message.channel.send 在函数中不起作用。该函数会将其作为变量读取。由于尚未定义消息,因此我们绘制了错误。

      在函数之外,该命令将再次正常工作。我不确定这是当前版本的错误还是故意的。但是有你的解决方法

      【讨论】:

      • 使用 typeof Message.channel.send 来验证 send 是否真的是一个函数。
      【解决方案4】:

      您在函数内部使用 message.guild.member 并没有定义导致问题的 member。考虑将函数放在导出中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-27
        • 2021-06-20
        • 1970-01-01
        • 1970-01-01
        • 2021-06-03
        • 2021-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多