簡體   English   中英

為什么返回整個文檔時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM