Knex: async / awaitでknexを使用する方法は?

作成日 2016年12月10日  ·  3コメント  ·  ソース: knex/knex

KnexにはPromiseインターフェースがあるので、async / awaitでKnexを使用しようとしています。 私のコードは以下の通りです。

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とpromisesに関する一般的な情報です。 閉鎖...

全てのコメント3件

おそらくラップする必要があります

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

async関数に入れ、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とpromisesに関する一般的な情報です。 閉鎖...

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

mtom55 picture mtom55  ·  3コメント

mattgrande picture mattgrande  ·  3コメント

sandrocsimas picture sandrocsimas  ·  3コメント

koskimas picture koskimas  ·  3コメント

olaferlandsen picture olaferlandsen  ·  3コメント