首页 > 解决方案 > 无法读取未定义的属性“toDateString”

问题描述

我试图制作一个不和谐的机器人,可以显示某个成员何时加入服务器,以及他们加入不和谐的日期。我尝试使用 toDateString 来显示从服务器加入到当前日期的天数。这是完整的代码:

const Discord = require("discord.js");
const { MessageEmbed } = require("discord.js");
const { Color } = require("../../config.js");

module.exports = {
  name: "userinfo",
  aliases: ["memberinfo", "whois"],
  description: "Show User Information!",
  usage: "Userinfo | <Mention User>",
  run: async (client, message, args) => {
    //Start

    let member = message.mentions.users.first() || message.author;

    const statuses = {
      online: "Online",
      dnd: "Do Not Disturb",
      idle: "Idle",
      offline: "Offline/Invisible"
    };

    const embed = new MessageEmbed()
      .setTitle(member.username + " Information!")
      .setColor(Color)
      .setThumbnail(member.displayAvatarURL())
      .addField("Full Name", member.tag, true)
      .addField("ID", `${member.id}`, true)
      .addField("Status", statuses[member.presence.status], true)
      .addField(
        `Roles Count`,
        message.guild.members.cache.get(member.id).roles.cache.size ||
          "No Roles!",
        true
      )
      .addField(`Avatar Url`, `[Link](${member.displayAvatarURL()})`, true)
      .addField("Joined Server At", member.joinedAt.toDateString())
      .addField("Joined Discord At", member.createdAt.toDateString())
      .setFooter(`Requested by ${message.author.username}`)
      .setTimestamp();

    message.channel.send(embed);

    //End
  }
};

标签: node.jsdiscord.js

解决方案


member.createdAt 未定义

必须使它成为 member.user.createdAt

.addField("Joined Discord At", member.createdAt.toDateString())

并将成员 var 更改为#GuildMember

let member = message.mentions.members.first() || message.member;

推荐阅读