如何将mongodb数据呈现为ejs文件?

时间:2019-08-31 02:28:33

标签: node.js ejs

我正在学习如何以html显示mongodb数据,但是当我从网络学习时,该代码将无法工作。我想创建按钮来更改页面以查看数据,并且我不知道如何将数据呈现给ejs。

我试图找到一些解决网络问题的方法,但大多数不是我所遇到的问题。 查找数据的代码

app.post('/viewdata', function (req, res) {
res.render('staffDisplay');
try{
    MongoClient.connect(uri, function(err, client) {
        if(err) {
             console.log('Error occurred while connecting to MongoDB Atlas...\n',err);
        }else{
           var game=[];
           var collection = client.db("GameDB").collection("Game");
           var result = collection.find();

           result.forEach(function(error,result){
               if(error){
                   console.log(error);
               }else{
                   if(result != null){
                       game.push(result);
                   }else{
                       console.log(game);
                       res.render('views/staffDisplay.ejs',{game:result})
                   }
               }
           })

           console.log('show');
            client.close();
        }
     });
}catch(ex){
    throw new Error(ex.toString());
}
});   

display.ejs

//skip the html code

        <ul>
      <% for(var i=0;i<=game.length;i++) {%>
      <li><%=game[i].gName%></li>
      <li><%=game[i].gDesc%></li>
      <li><%=game[i].gDate%></li>
      <%}%>
    </ul>

结果是显示“游戏未定义”,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您能否尝试在第一部分中删除此res.render('staffDisplay');,然后用此res.render('views/staffDisplay.ejs',{game:result})替换res.render('staffDisplay.ejs',{game:result})

相关问题