[英]Why Is An Error Returning A Whole Document
我正在嘗試使用findOne
獲取文檔,我有一個簡單的錯誤處理程序( if (err) console.log(err);
),但是正在返回整個文檔。 我無法超越這個if陳述。 如果我刪除了if (err)
,那么它將被另一個聲明該文檔不存在的語句捕獲。
使用Mongoose 5.4.0,曾嘗試刪除if語句,但被其他人捕獲,說它不存在。 我也在使用discord.js,所以無論它說出message.reply
還是message.channel.send
只是意味着它將向通道發送一條消息-與錯誤無關。
guildModel.findOne({"GuildName": GuildSearch}).then((err, result) => {
if (result) {
let guildEmbed = new Discord.RichEmbed()
.setTitle(GuildSearch)
.setColor("00ff65")
.setDescription(result.GuildDescription);
return message.channel.send(guildEmbed);
} else {
let NoDoc = new Discord.RichEmbed()
.setTitle("Oops!")
.setDescription(`<@!${message.author.id}>, There is no Server with the name ${GuildSearch} recorded with me.`)
.setColor("ff7f00")
.setFooter("Developed By William#8495");
return message.channel.send(NoDoc);
};
}).catch(err => {
return message.reply("Error: " + err);
});
它應該只發送一個名為GuildDescription的文檔字段,但是會發送Error:
和整個文檔。
您正在使用“承諾樣式”查詢,因此第一個參數應為result
,而不是err
:
guildModel.findOne({ "GuildName": GuildSearch }).then(result => {
}).catch(err => {
console.log(err)
})
或者您可以使用其他語法:
guildModel.findOne({ "GuildName": GuildSearch }, (err, result) => {
if (err) console.log(err)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.