KnexJS 查询是如何创建的?什么完成了查询?
How are KnexJS queries created? What finalizes the query?
我正在使用 KnexJS 创建查询。不过,我对最终确定查询的内容感到困惑。
例如,这个查询:
knex('someTable').join('someOtherTable', 'someTable.fid', '=', 'someOtherTable.pid').select('someField');
另一种写查询的方式:
knex.select('someField').from('someTable').join('someOtherTable', 'someTable.fid', '=', 'someOtherTable.pid')
我不完全理解您什么时候想在方法 1 上执行方法 1 而不是方法 2,反之亦然。但我真正感到困惑的是 knex 如何“知道”何时完成查询并实际执行查询。任何人都可以阐明这一点吗?如果最后有某种 .build()
方法,那将是有意义的。但是没有它,我很困惑。
Knex 查询在其 .then()
方法被调用时被触发。因为 async/await
关键字在内部调用 Promise 的 .then()
方法,使用带有 knex 对象的 await
关键字也会最终确定它。请注意,Promise.all()
还将尝试调用传递给它的承诺的 .then()
方法,因此 Promise.all()
也将完成 knex 查询。
所以基本上 knex 查询在以下时间完成并传输到数据库:
你称之为.then()
方法
你用await
关键字就可以了
你传给Promise.all()
但请注意,(2)和(3)实际上只是(1)的不同版本,
我正在使用 KnexJS 创建查询。不过,我对最终确定查询的内容感到困惑。
例如,这个查询:
knex('someTable').join('someOtherTable', 'someTable.fid', '=', 'someOtherTable.pid').select('someField');
另一种写查询的方式:
knex.select('someField').from('someTable').join('someOtherTable', 'someTable.fid', '=', 'someOtherTable.pid')
我不完全理解您什么时候想在方法 1 上执行方法 1 而不是方法 2,反之亦然。但我真正感到困惑的是 knex 如何“知道”何时完成查询并实际执行查询。任何人都可以阐明这一点吗?如果最后有某种 .build()
方法,那将是有意义的。但是没有它,我很困惑。
Knex 查询在其 .then()
方法被调用时被触发。因为 async/await
关键字在内部调用 Promise 的 .then()
方法,使用带有 knex 对象的 await
关键字也会最终确定它。请注意,Promise.all()
还将尝试调用传递给它的承诺的 .then()
方法,因此 Promise.all()
也将完成 knex 查询。
所以基本上 knex 查询在以下时间完成并传输到数据库:
你称之为
.then()
方法你用
await
关键字就可以了你传给
Promise.all()
但请注意,(2)和(3)实际上只是(1)的不同版本,