如何在 NodeJS 中引用我的 MongoDB 数据,然后将其添加到 Discord.JS 消息中?

Posted

技术标签:

【中文标题】如何在 NodeJS 中引用我的 MongoDB 数据,然后将其添加到 Discord.JS 消息中?【英文标题】:How do I reference my MongoDB data in NodeJS, and then add it to a Discord.JS message? 【发布时间】:2020-02-03 06:49:57 【问题描述】:

我正在尝试从 MongoDB 数据库中提取一组数据,虽然代码已生锈(如果可以做得更好或遗漏某些内容或错误,我确实希望对其进行一些更正),它应该获取数组,找到“用户”和“描述”对象,然后将它们放入 discord.js 消息中。

我尝试过单独引用对象、将它们设为字符串、解析数据,但我仍然不知道该怎么做。这是我一直在使用的代码。

  module.exports.run = async (bot, message, args) => 
    const MongoClient = require('mongodb').MongoClient;
    const url = 'mongodb+srv://something:something@something/test?retryWrites=true&w=majority';
    const assert = require('assert');
    try 
        function remindersChecker() 
            let mongoClientPromise = MongoClient.connect(url, function (err, client) 
                const db = client.db("reminders");
                let date = new Date().getTime();
                let now = Math.floor(Date.now() / 1000);
                db.collection("reminders").find().toArray(function (err, result) 
                    let data = JSON.toObject();
                    console.log(data);
                    let user = data.author
                    let description = data.description
                    console.log(user);
                    user.send("I have a reminder for you! " + description)
                )
            )
        
        remindersChecker()
     catch(err) 
        catchError()
    


     module.exports.help = 
        name: "check"
    

(该命令是临时的,稍后将在 setTimeout 上使用,因此该函数不仅仅是普通的旧代码。)

谢谢!我希望我能尽快得到帮助。

【问题讨论】:

如果您能告诉我们您当前的代码会发生什么,那就太好了 - 是否抛出错误,是否返回空数组等?但是,快速浏览一下,从您的.find() 返回的数据被放入一个名为result 的对象中,但您并没有引用它。我想console.log(data) 正在返回 null。尝试console.log(result) 看看您的.find() 是否正在返回数据以及以什么格式返回。另外我不相信 JSON.toObject() 是一个有效的方法:developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 当我运行代码并打印用户变量时,它显示为未定义,这与我得到的一样多。 【参考方案1】:

更多信息可能有助于更好地理解问题。 从我在这里可以看到,您正在从数据库中接收一个对象并将其转换为一个数组:

db.collection("reminders").find().toArray(function (err, result) ...

现在该数组实际上是从回调获得的结果,而您根本没有使用它,您可能必须对其进行迭代。

另外我记得我曾经写过

...find()..

在数据库中搜索 SELECT*FROM 在 SQL 中。也许这也有帮助。

希望这会有所帮助。

【讨论】:

以上是关于如何在 NodeJS 中引用我的 MongoDB 数据,然后将其添加到 Discord.JS 消息中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用nodejs从我的数据模型中的嵌套对象填充mongodb中的数据集合?

如何在 mongodb 中自动插入记录(nodejs、express、mongoose)

如何使用 MongoDB 和 Nodejs 创建用户角色/权限?

如何根据保存的 mongodb 文档数据调度/排队任务 [NodeJS]

如何使用 NodeJS 将数据添加到 MongoDB 中的数组属性?

如何在nodejs mongodb本机驱动程序中将字符串转换为ObjectId?