sql >> Base de Datos >  >> NoSQL >> MongoDB

mangosta función findOne retorno undefine

Está sucediendo debido a la naturaleza asíncrona y sin bloqueos del nodo js. Esto significa que cualquier actividad que tarde mucho tiempo en finalizar, como el acceso a archivos, la comunicación de red y las operaciones de base de datos, se solicita y se deja de lado hasta que los resultados estén listos y devueltos. a través de una función de devolución de llamada.

Es por eso que no está definido, porque mientras la operación db está sucediendo, la consola externa se ejecuta debido a la naturaleza no bloqueante.

Para obtener el resultado puedes hacer esto

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