【问题标题】:Adding mongodb collection item to discord embed将 mongodb 集合项添加到不和谐嵌入
【发布时间】:2019-07-18 06:02:28
【问题描述】:

我想使用 MongoDB ForEach 函数将我的集合文档添加到嵌入中。

当我想将字段添加到 foreach 内的嵌入时,它会发送嵌入并跳过和添加字段。当我安慰记录它时,似乎代码发送了消息,然后添加了字段。

     const Discord = require("discord.js");
    const mongoDb = require("mongodb").MongoClient;

    let showEmbed = new Discord.RichEmbed();
    let proccess = 0;

    module.exports.show = (message, page) => {


            mongoDb.connect('mongodb+srv://admin:31045@robot-xi9jt.gcp.mongodb.net/eco?retryWrites=true', {
                useNewUrlParser: true
            }, function (err, db) {
                if (err) console.log(err);
                let dbo = db.db("eco");
                dbo.collection("items").find({
                    itemPage: page
                }).forEach(function (doc) {
                    console.log(`${doc.itemName} : ${doc.itemPrice} :  ${doc.itemDescription}`)
                    showEmbed.addField(`**${doc.itemName}** | $${doc.itemPrice}`, doc.itemDescription, false);
                })
            });
message.channel.send(showEmbed);
        }

【问题讨论】:

    标签: javascript mongodb discord.js


    【解决方案1】:

    如果您查看 MongoDB 文档,您会看到 mongoDb.connect returns a Promise。这意味着您的代码将连接到您的数据库,但它会在后台这样做。同时它将继续处理您的其余代码,因此它将在添加所有字段之前发送嵌入。

    您可以通过将message.channel.send 移动到 Promise 中来轻松解决此问题,如下所示:

    const Discord = require("discord.js");
    const mongoDb = require("mongodb").MongoClient;
    
    let showEmbed = new Discord.RichEmbed();
    let proccess = 0;
    
    module.exports.show = (message, page) => {
      mongoDb.connect('Your connect URL here', { useNewUrlParser: true }, function (err, db) {
        if (err) console.log(err);
        let dbo = db.db("eco");
    
        dbo.collection("items").find({
          itemPage: page
        }).forEach(function (doc) {
          console.log(`${doc.itemName} : ${doc.itemPrice} :  ${doc.itemDescription}`)
          showEmbed.addField(`**${doc.itemName}** | $${doc.itemPrice}`, doc.itemDescription, false);
        });
    
        message.channel.send(showEmbed);
      });
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 2019-10-11
      • 1970-01-01
      • 2013-03-29
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 2016-02-23
      相关资源
      最近更新 更多