Det sker på grund af den ikke-blokerende, asynkrone karakter af node js. Dette betyder, at enhver aktivitet, der tager lang tid at afslutte, såsom filadgang, netværkskommunikation og databaseoperationer, anmodes om og lægges til side, indtil resultaterne er klar og returneret via en tilbagekaldsfunktion.
Det er derfor, du bliver udefineret, for mens db-handlingen sker, bliver den ydre konsol udført på grund af ikke-blokerende karakter.
For at få resultatet kan du gøre dette
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)
});
})