MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

mangusta la funzione findOne restituisce undefine

Sta accadendo a causa della natura asincrona e non bloccante del nodo js. Ciò significa che qualsiasi attività che richiede molto tempo per essere completata, come l'accesso ai file, la comunicazione di rete e le operazioni sul database, viene richiesta e messa da parte fino a quando i risultati non sono pronti e restituiti tramite una funzione di richiamata.

Ecco perché stai diventando indefinito, perché mentre l'operazione db sta avvenendo, la console esterna viene eseguita a causa della natura non bloccante.

Per ottenere il risultato puoi farlo

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