Node.js Node knex Bookshelf-使用带有fetch的动态where子句
我需要修改一个现有的查询,该查询获取带有相关项的模型实例,以便根据是否提供了搜索项或ID动态更改Node.js Node knex Bookshelf-使用带有fetch的动态where子句,node.js,postgresql,knex.js,bookshelf.js,Node.js,Postgresql,Knex.js,Bookshelf.js,我需要修改一个现有的查询,该查询获取带有相关项的模型实例,以便根据是否提供了搜索项或ID动态更改where子句 如果我从以下内容修改原始内容: return db.model('Users').where('id', userId) .fetch({withRelated: [ 'userNames.userMessages', { ... }, ]}).then(function(user) { 对此
where
子句
如果我从以下内容修改原始内容:
return db.model('Users').where('id', userId)
.fetch({withRelated: [
'userNames.userMessages',
{
...
},
]}).then(function(user) {
对此,我得到了errordb.model(…)。fetch不是一个函数
var query = db.model('Users')
.fetch({withRelated: [
'userNames.userMessages',
{
...
},
]});
if (userId) {
query.where('id', userId);
} else if (searchTerm) {
query.where('name', 'like', '%' + searchTerm + '%');
}
query.then(function(user) {
fetch()db.model('Users')
单独就像一个“类”,只有可用的
因此,动态查询的一个可能解决方案是:
var query = db.model('Users')
.collection()
.query(function(qb) {
if (userId) {
qb.where('id', userId);
} else if (searchTerm) {
qb.where('name', 'like', '%' + searchTerm + '%');
}
})
.fetch({withRelated: [
'userNames.userMessages',
{
...
},
]});
query.then(function(user) {
fetch()db.model('Users')
单独就像一个“类”,只有可用的
因此,动态查询的一个可能解决方案是:
var query = db.model('Users')
.collection()
.query(function(qb) {
if (userId) {
qb.where('id', userId);
} else if (searchTerm) {
qb.where('name', 'like', '%' + searchTerm + '%');
}
})
.fetch({withRelated: [
'userNames.userMessages',
{
...
},
]});
query.then(function(user) {