Mysql 如何从knex typescript操作而不是结果返回查询?
我正在使用knex对我的sql数据库执行操作。有没有一种方法可以让我懒洋洋地执行查询? 我的代码如下所示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
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
,因此您实际上只是返回一个承诺。我明白了,我不知道是否需要重新分配。你是对的,等待在这里是多余的。谢谢