MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongoose findOne Funktion gibt undefine zurück

Dies geschieht aufgrund der nicht blockierenden, asynchronen Natur von node js. Dies bedeutet, dass alle Aktivitäten, die lange dauern, bis sie abgeschlossen sind, wie Dateizugriff, Netzwerkkommunikation und Datenbankoperationen, angefordert und beiseite gelegt werden, bis die Ergebnisse fertig sind und zurückgegeben werden über eine Callback-Funktion.

Aus diesem Grund werden Sie undefiniert, da die äußere Konsole aufgrund der nicht blockierenden Natur ausgeführt wird, während die db-Operation ausgeführt wird.

Um das Ergebnis zu erhalten, können Sie dies tun

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