javascript - 如何返回 MongoDB 文档以表达路由?
问题描述
连接到我的数据库后,我可以从集合中获取我的文档,但我不确定我应该如何返回它并在路由中使用它。
var findDocuments = (db, callback) => {
var collection = db.collection(category)
collection.find({}).toArray((err, docs) => {
console.log(docs);
// return "docs" array
callback;
})
}
app.get("/route", (res, req) => {
MongoClient.connect(url, (err, db) => {
console.log("Connected successfully")
findDocuments(db, () => {
// I WANT TO RETURN THE "docs" ARRAY SO I CAN USE IT HERE
// The ".render()" is for my templating engine
// res.render('field', {field: docs});
db.close();
})
});
})
我希望能够将“docs”数组传递给渲染,这样我就可以使用我的 ejs(嵌入式 JavaScript 模板引擎)模板上的信息。
解决方案
您可以在回调中接受 docs 变量,然后在调用时传递它们。此外,由于回调是在请求范围内定义的,因此您可以从那里访问响应方法
var findDocuments = (db, callback) => {
var collection = db.collection(category)
collection.find({}).toArray((err, docs) => {
console.log(docs);
// return "docs" array
callback(docs);
})
}
app.get("/route", (res, req) => {
MongoClient.connect(url, (err, db) => {
console.log("Connected successfully")
findDocuments(db, (docs) => {
res.render(docs)
db.close();
})
});
}
推荐阅读
- sql - SQL Oracle SQL 条件连接
- audio - FFMPEG 连接音频文件并添加背景音乐
- c# - 多个级别的 C# .NET 接口实现
- r - 根据条件在 R 中合并
- django - Django:为什么控制台电子邮件后端不发送电子邮件?
- javafx-8 - 使用 ImageView 时找不到无效的 URL 或资源
- docker - 附加 Docker 容器以在 Mac 上的 .NET Core / Visual Studio 中进行处理
- python - 仅当 Python 控制台中有内容时才运行 input()
- python - 正则表达式:从字符串中提取包含特定字母的所有元素
- html - 多个导航栏背景位置