Mysql 如何从knex typescript操作而不是结果返回查询?

Mysql 如何从knex typescript操作而不是结果返回查询?,mysql,database,typescript,knex.js,Mysql,Database,Typescript,Knex.js,我正在使用knex对我的sql数据库执行操作。有没有一种方法可以让我懒洋洋地执行查询? 我的代码如下所示 const results = await knex({dbconfig})('table1') .select('col1').where('...') 我想进行一些类型脚本操作,并检查一些条件以执行进一步的操作。 如果我试图通过简单地编写results.where(“…”)来执行这些操作,那么说TypeError:results.w

我正在使用knex对我的sql数据库执行操作。有没有一种方法可以让我懒洋洋地执行查询? 我的代码如下所示

const results = await knex({dbconfig})('table1')
                           .select('col1').where('...')
我想进行一些类型脚本操作,并检查一些条件以执行进一步的操作。 如果我试图通过简单地编写
results.where(“…”)
来执行这些操作,那么说
TypeError:results.where不是函数就失败了

我现在正在做的是:

if (condition1){
const results = await knex(..).(some operations)
    }
else{
const results = await knex(..).(some operations + some other operarations)
    }
有更好的方法吗?

回答我自己的问题。 我最终删除了wait,并使用var-nd在返回时放置它,所以现在

var results = knex(...).someOperations(..)
if(condition1)
    results=results.someOtherOperations(..)
else if(condition2)
     results = results.someOtherOps2(..)
return await results

我想你已经发现了,这里的诀窍是使用Knex返回的对象。但是,您不必每次都重新分配它,只需对其调用该方法即可。因此:

异步函数getCustomers(选项){ const customers=knex('customers')。其中({someCondition}); 如果(选项区域){ 其中({region:options.region}); } 返回客户; }

请注意,
return await
async
函数中是多余的:您必须在调用代码中执行
await
,因此您实际上只是返回一个承诺。

我明白了,我不知道是否需要重新分配。你是对的,等待在这里是多余的。谢谢