KnexJS查询是如何创建的?查询的最终结果是什么



我正在使用KnexJS创建查询。不过,我对查询的最终结果感到困惑。

举个例子,这个查询:

knex('someTable').join('someOtherTable', 'someTable.fid', '=', 'someOtherTable.pid').select('someField');

编写查询的另一种方法:

knex.select('someField').from('someTable').join('someOtherTable', 'someTable.fid', '=', 'someOtherTable.pid')

我不完全理解你什么时候想用方法1代替方法2,反之亦然。但我真正困惑的是knex;知道";当正在构建查询并实际执行查询时。有人能解释一下吗?如果最后有某种.build()方法,这是有意义的。但如果没有它,我会感到困惑。

Knex查询在调用其.then()方法时被触发。因为async/await关键字在内部使用带有knex对象的await关键字调用Promise的.then()方法,所以Promise.all()也会尝试调用传递给它的Promise的.then()方法,因此Promise.all()也会完成knex查询。

因此,基本上,knex查询在以下时间完成并传输到数据库:

  1. 您称之为.then()方法

  2. 你在上使用await关键字

  3. 您将其传递给Promise.all()

但请注意,(2(和(3(实际上只是(1(的不同版本,

最新更新