如何在嵌入(discord.js)中映射来自mongoose数据库的数据



问题

下面的代码将数据库中的数据映射到MessageEmbed.description中。我想映射MessageEmbed.fields中的每个数据。我尝试过使用for()循环,但我想简要了解如何做到这一点,因为我使用了两个侦听器:-w(数据的内容(和I

我的代码

await db.findOne({ guildid: message.guild.id, user: member.user.id }, async(err, data) =>{
if(err) throw err;
if(data) {

const embed = new Discord.MessageEmbed()
.setTitle(`${message.author.tag}`)
.setDescription(
data.content.map(
(w, i) => 
``${i + 1}` | **${w.data1}**n**${w.data2}**`
)
)                   
.setFooter(`Total : ${data.content.length}`)

message.channel.send(embed)
} else {
message.channel.send('No data found')
}
});

for((循环[我的尝试]

for(w, i of data.content){
embed.addField(`${i + 1}`, `${w.data1}n${w.data2}`, true)
};

然而,这导致了一个错误。

您可以使用.forEach(),它将生成当前元素和当前索引:

data.content.forEach((w, i) => {
embed.addField(`${i + 1}`, `${w.data1}n${w.data2}`, true);
});

如果您想使用for循环,请使用for .. in获取索引:

for (let i in data.content){
let w = data.content[i];
embed.addField(`${i + 1}`, `${w.data1}n${w.data2}`, true);
}

不过我不推荐后者。

最新更新