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
的情况下呈现页面。所以我卡住了我不知道该怎么做。如果有人有解决方案,我会很高兴听到它。
答案 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>
<% }
}%>