Mongoose渲染findById

时间:2018-04-06 13:12:45

标签: javascript node.js mongodb mongoose ejs

嘿我正在尝试构建Flash游戏网站。点击一个游戏后,它会打开一个我正在使用findById呈现的页面,如:

router.get("/oyun/:gameNameId", (req, res) => {
    gameName.findById(req.params.gameNameId)
        .then((gamesInfo) => {
            console.log(gamesInfo);
            res.render("showGame", {
                gamesInfo: gamesInfo
            });
        })
        .catch((err) => {
            console.log("errr errr errrr");
            console.log(err);
            res.send(err);
        });
});

我的问题出现在这个页面上我希望动态地显示热门游戏:

<% gamesInfo.forEach((game)=>{ %>
    <% if(game.popular =="true") { %> 
        <li>
            <a href="/oyun/<%= game._id %>" class="sa">
                <img src="<%=game.gameImg%>" alt="">
            </a>
            <span><%=game.gameName%></span>
        </li>
     <% }  
})%>          

但是因为我只用一个游戏渲染页面,所以我无法做到。我也无法在没有findById的情况下呈现页面。所以我卡住了我不知道该怎么做。如果有人有解决方案,我会很高兴听到它。

2 个答案:

答案 0 :(得分:1)

我通过呈现双mongoose查询找到解决方案,如:

router.get("/oyun/:gameNameId",(req,res)=>{
        gameName.findById( req.params.gameNameId , function(err, gamesInfo){
            if(err) {
              console.log(err);
              return
            } 
            gameName.find({}, function(err, gamesI){
                if(err) {
                  console.log(err);
                  return
                }
            res.render("showGame",{gamesInfo:gamesInfo , gamesI: gamesI});
    });
});
});

<% gamesI.forEach((game)=>{ %>
    <% if(game.popular =="true") { %> 
        <li>
            <a href="/oyun/<%= game._id %>" class="sa">
                <img src="<%=game.gameImg%>" alt="">
            </a>
            <span><%=game.gameName%></span>
        </li>
     <% }  
})%> 

我没有知道我必须拨打多个查询。

答案 1 :(得分:0)

试试这个:

<% for(var i=0;i<gamesInfo.length;i++){ %>
        <% if(gamesInfo[i].popular =="true") { %> 
            <li>
                <a href="/oyun/<%= gamesInfo[i]._id %>" class="sa">
                    <img src="<%=gamesInfo[i].gameImg%>" alt="">
                </a>
                <span><%=gamesInfo[i].gameName%></span>
            </li>
         <% }  
    }%>