Javascript Mongoose渲染findById

Javascript Mongoose渲染findById,javascript,node.js,mongodb,mongoose,ejs,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("sh

嘿,我正在尝试建立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
    ,我也不能渲染页面。所以我被卡住了,我不知道怎么做。如果有人有解决方案,我会很高兴听到的。

    尝试以下方法:

    <% 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>
             <% }  
        }%>
    

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

    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});
        });
    });
    });
    

    {%>
    

  • 我不知道我必须调用多个查询。

    您是否尝试过向页面传递一系列流行游戏?可能是
    查找更多游戏?是的,上面说“gamesInfo.forEach不是函数”你是否正在构建一个游戏的详细信息页面,其中包含流行游戏的小部件?正确吗?Jonas W.不幸的是,当我尝试使用gameName.find({gameNameId:req.params.gameNameId})时,它不起作用)我的问题是。我当时不知道我可以调用两个查询。:)你认为呢?我的意思是,在我找到解决方案之前,你可以向客户端返回多个函数的响应。我想我可以只返回一个查询从数据库中删除^^
    
    <% 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>
         <% }  
    })%>