Reputation: 1467
I'm trying to use Knex with async/await since Knex has a Promise interface. My code is below.
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);
I expected to get the rows of my query back, but the output is
KNEX Promise {
_c: [],
_a: undefined,
_s: 0,
_d: false,
_v: undefined,
_h: 0,
_n: false }
Upvotes: 8
Views: 24701
Reputation: 1864
const functionName = async() => {
let result = await db.select().('users').limit(10);
return result;
}
Upvotes: 2
Reputation: 897
Async functions return promises, therefore you need to treat values returned from getUsers
as promises, therefore await
them or use .then()
method on them:
getUsers().then((res) => console.log(res))
Upvotes: 7
Reputation: 3206
You should call await in a async signed function. Here is the pattern what I use.
(async function(){
const res = await getUsers();
console.log('KNEX', res);
})()
Upvotes: 13