在ejs页面显示MongoDB个查询结果
Show MongoDB Query Result On ejs page
我有一个路由器,它 returns 一个特定用户的信息基于来自 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 更改为其他内容,但现在确定如何。
您需要在您的 ejs 模板中循环 resultTasks
,例如:
<% 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
});
});
我有一个路由器,它 returns 一个特定用户的信息基于来自 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 更改为其他内容,但现在确定如何。
您需要在您的 ejs 模板中循环 resultTasks
,例如:
<% 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
});
});