En primer lugar, me gustaría dejar en claro que soy nuevo en node.js y esto puede sonar como una pregunta tonta, pero ¿cómo se supone que debo devolver datos de la función model.find() en mongoose (por ejemplo, con un var.exportaciones = var )?<
const data = () => { MyModel.find().then(function(result){ console.log(result); return(result); }); } exports.data = dataAl ser la consulta asíncrona, no puedo recuperar estos datos hasta que se complete la función (así que nunca). ¿Hay alguna forma de devolver esta información en una variable, por ejemplo:
const retriever = require('../utils/test.js') //calling the exports file test = retriever.data console.log(test)Muchas gracias por adelantado
Con promesas puedes lograrlo de la siguiente manera
const data = () => { return MyModel.find({}); } // using it in another function const result = await data();1. Puede usar una devolución de llamada, como se muestra a continuación
const data = (callback) => { MyModel.find().then(function(result){ console.log(result); //return(result); callback(results);//we pass in a function which will be used to pull out //data }); } exports.data = data// EL ÁREA DONDE SE UTILIZA ESTE CÓDIGO
const {data} = require('./to/data') //show data data(function (result) { console.log( result );// data from callback })2. usar promesas asíncronas/en espera
const data = async () => { let results = await MyModel.find(); } exports.data = dataSOBRE EL USO DE ESTA FUNCIÓN
const {data} = require('./to/data') (async function () { let res = await data(); console.log(res); })()