如何在 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]