sql >> Databasteknik >  >> NoSQL >> MongoDB

mongoose findOne-funktionen returnerar odefinierad

Det händer på grund av den icke-blockerande, asynkrona karaktären hos node js. Detta innebär att all aktivitet som tar lång tid att slutföra, såsom filåtkomst, nätverkskommunikation och databasoperationer, begärs och läggs åt sidan tills resultaten är klara och returneras via en återuppringningsfunktion.

Det är därför du blir odefinierad, för medan db-operationen pågår exekveras den yttre konsolen på grund av icke-blockerande natur.

För att få resultatet kan du göra detta

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. Kan inte ansluta till MongoDB med autentisering aktiverad

  2. Mongoose-schemareferens och odefinierad typ 'ObjectID'

  3. Det gick inte att skapa en böna med namnet 'mongobee' definierat i klasssökvägsresursen

  4. Är Redis-uppdateringar synkrona?