node.js - 无法读取未定义的属性“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
}
};
解决方案
member.createdAt 未定义
必须使它成为 member.user.createdAt
.addField("Joined Discord At", member.createdAt.toDateString())
并将成员 var 更改为#GuildMember
let member = message.mentions.members.first() || message.member;
推荐阅读
- javascript - 如何从网页中的文本框中替换 xml 中的现有标签文本
- java - 具有泛型返回类型的覆盖方法中的参数导致覆盖失败
- c# - Asp.net 计时器作为 ref 传递给其他形式的函数在启用时不会打勾
- android-studio - 如何创建母语键盘
- java - 为调度任务及其取消配置线程池
- kubernetes - 是否可以获取 `.env` 文件来创建 Kubernetes 机密?
- php - 为什么即使数据库中不存在 id 和/或用户名我也会成功
- php - 自定义功能显示在所有页面上
- go - Golang bytes.Buffer - 传递值问题
- oracle - 想要对数据进行四舍五入