En un archivo llamado getData.js, escribí el siguiente código
module.exports = async function (page, id) { const options = { ... }; axios .request(options) .then((response) => { myData = JSON.stringify(response.data); return myData; }) .catch((error) => { console.error(error); }); };Ahora, en mi archivo index.js principal, importé el módulo anterior y luego tengo este fragmento,
const server = http.createServer((req, res) => { res.writeHead(200, { "Content-Type": "application/json" }); let finalData = await getData(myPage, myID); res.end(finalData); });Cuando ejecuto este nodo se bloquea y aparece este error
SyntaxError: await solo es válido en funciones asíncronas y los cuerpos de módulos de nivel superior
¿Cómo hago que mi código funcione? Pensé en usar async-await porque la respuesta. Los datos son muy grandes, pero claramente no entiendo completamente las funciones de async-await. En el módulo externo, si trato de devolver myData fuera del bloque .then y tampoco uso async-await, entonces obtengo datos finales indefinidos.