node.js - 在 ejs 页面上显示 MongoDB 查询结果
问题描述
我有一个路由器,它根据来自 MongoDB 的唯一 Object_id 返回特定用户的信息。这工作正常,我得到了正确的结果,但它们作为 JSON 对象在“空白”页面上返回。我想简单地获取结果并将它们呈现在我的 ejs 页面上。这是我的路线:
//Here are my router.js:
router.get('/user/get:id', function (req, res) {
MongoClient.connect(DBUri,{useUnifiedTopology: true }, function (err, db) {
let dbo = db.db(DBName);
const query = {_id: objectId(req.params.id)}
dbo.collection("Users").find(query).toArray(function(err, resultTasks) {
if (err) throw err;
res.send(resultTasks)
db.close();
});
});
});
//Here are my file.ejs:
<div class="card" v-for="post in filteredList">
<a v-bind:href="'/user/get' + post.id">{{ post.name }}</a>
</div>
我还是新手,所以我知道这是基本的。我想我必须将 res.send 更改为其他内容,但现在确定如何。
解决方案
您需要resultTasks
在您的 ejs 模板中循环,例如:
<% resultTasks.forEach((post) => { %>
<div class="card" v-for="post in filteredList">
<a v-bind:href="/user/get/<%= post.id %>"><%= post.name %></a>
</div>
<%}); %>
此外,您可能需要更改send
端点
dbo.collection("Users").find(query).toArray(function(err, resultTasks) {
if (err) throw err;
db.close();
res.render('<path of your ejs file>', {
resultTasks: resultTasks, // pass data from the server to the view
});
});
推荐阅读
- google-apps-script - 如何使用谷歌应用脚本仅修改特定重复发生的日历事件的详细信息?
- sql-server - SSRS 报告服务器 - 电子邮件失败?
- python - 计算数据框中的平均值并添加到新列
- react-native - 我希望我的登录按钮居中,我试过但没有用。该怎么办?
- python - 处理scrapy异常CloseSpider
- java - 我应该采取什么方法来为不同系统的审计跟踪创建全球应用程序?
- php - Laravel 在资源中加载数据透视数据
- html - 将 iFrame 推文嵌入 Google 幻灯片
- mariadb - 切换数据目录后无法启动 mariadb
- c# - 如何将矩阵乘以 MathNet 库中的向量?