Knex: 如何将 knex 与 async/await 一起使用?

创建于 2016-12-10  ·  3评论  ·  资料来源: knex/knex

我正在尝试将 Knex 与 async/await 一起使用,因为 Knex 有一个 Promise 接口。 我的代码如下。

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);

我希望得到我的查询行,但输出是

KNEX Promise {
_c: [],
_a: undefined,
_s: 0,
_d: false,
_v: undefined,
_h: 0,
_n: false }

最有用的评论

这与 knex 无关,而只是关于 async / await 和 Promise 的一般内容。 关闭...

所有3条评论

你可能应该换行

const res = getUsers();
console.log('KNEX', res);

进入async函数并将 await 放在 getUsers() 之前;

(async function() {
  const res = await getUsers();
  console.log('KNEX', res);
}())

还要考虑 try/catch 进行错误处理(冒泡)

嗯,这行得通

async function test(){
    const res = await getUsers();
    console.log('KNEX', res);
}
test();

这与 knex 无关,而只是关于 async / await 和 Promise 的一般内容。 关闭...

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

PaulOlteanu picture PaulOlteanu  ·  3评论

tjwebb picture tjwebb  ·  3评论

nklhrstv picture nklhrstv  ·  3评论

arconus picture arconus  ·  3评论

zettam picture zettam  ·  3评论