Estoy haciendo una solicitud a mi base de datos, configuré las funciones como asincrónicas y en espera, pero aún me devuelve indefinido o Promesa {pendiente} ¿cómo lo devuelvo cuando tengo el resultado?
export const getGerente = async (req, res) => { var query = "SELECT * FROM inventory;" const r = await select(query) console.log(r) return res.json({message:"teste"}) }
export async function select(query) { var teste = await client.connect(() =>{ client .query(query) .then((resultado) => { console.log('sucess!!'); return resultado.rows /* const rows=resultado.rows rows.map(x =>{ console.log(x.name) })*/ }) .catch((erro) => { console.log("erro: " + erro.message); }) .then((teste) => { console.log('Finished execution, exiting now'); process.exit(); }); }) }
resultado: Promesa {pendiente} La estoy llamando para una solicitud
Su función de select
no está esperando al cliente. client.connect
correctamente.
Pruebe esto para select
la función -
export async function select(query) { const promisifiedRows = new Promise((resolve, reject) => { client.connect((err) => { if (err) { reject(err); // err in connecting } else { console.log('Connected!'); client.query(query, (err, rows) => { if (err) { reject(err); // err while exceuting the query } else { resolve(rows); } }); } }); }); const rows = await promisifiedRows(); return rows; }