【问题标题】:Show MongoDB Query Result On ejs page在 ejs 页面上显示 MongoDB 查询结果
【发布时间】:2021-01-12 22:40:55
【问题描述】:

我有一个路由器,它根据来自 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 更改为其他内容,但现在确定如何。

【问题讨论】:

    标签: node.js mongodb express ejs


    【解决方案1】:

    您需要在您的 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
        });
    });
    

    【讨论】:

    • 嘿达里奥。谢谢您的帮助!我将您的答案标记为解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 2020-06-16
    • 2018-09-16
    相关资源
    最近更新 更多