J'essaie d'utiliser Knex avec async/wait puisque Knex a une interface Promise. Mon code est ci-dessous.
const db = makeKnex({
client: 'mysql',
connection: {
host: process.env.MYSQL_HOST,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
},
pool: { min: 0, max: 100 },
});
async function getUsers() {
return await db.select()
.from('users')
.limit(10);
}
const res = getUsers();
console.log('KNEX', res);
Je m'attendais à récupérer les lignes de ma requête, mais la sortie est
KNEX Promise {
_c: [],
_a: undefined,
_s: 0,
_d: false,
_v: undefined,
_h: 0,
_n: false }
vous devriez probablement envelopper
const res = getUsers();
console.log('KNEX', res);
dans la fonction async
et placez await avant getUsers();
(async function() {
const res = await getUsers();
console.log('KNEX', res);
}())
pensez aussi à try/catch pour la gestion des erreurs (bulle)
Hum ça marche
async function test(){
const res = await getUsers();
console.log('KNEX', res);
}
test();
Ce n'est pas lié à knex, mais juste des trucs généraux sur async/attend et les promesses. Fermeture...
Commentaire le plus utile
Ce n'est pas lié à knex, mais juste des trucs généraux sur async/attend et les promesses. Fermeture...