sql >> Databáze >  >> NoSQL >> MongoDB

funkce mongoose findOne vrací undefine

Děje se tak díky neblokovací asynchronní povaze uzlu js. To znamená, že jakákoliv činnost, která trvá dlouho, než je dokončena, jako je přístup k souborům, síťová komunikace a databázové operace, jsou požadovány a odkládány, dokud nejsou výsledky připraveny a vráceny. prostřednictvím funkce zpětného volání.

To je důvod, proč se stáváte undefined, protože zatímco operace db probíhá, vnější konzola se provádí kvůli neblokovací povaze.

Chcete-li získat výsledek, můžete to udělat

app.get('/home',(req, res)=>{
    establishment.findOne({_id : "57d83a867d3ba20fcb657dc7" } , (err, estab)=>{
        if(err){
            return res.send(err);
        }
        console.log("inside the function: "+estab.name);
        // what ever proccing you need to do with result do here and finally return res
        res.json(estab)
    });
})



  1. Sdílení soketů přes samostatné instance nodeJS

  2. MongoDB $lookup Value Zpět do pole

  3. dotaz mongodb:$velikost s $gt vrací vždy 0

  4. Najít řetězec v řetězci v SQL