Node.js 如何在使用nestjs查询生成器生成的查询中动态添加where子句?
我正在开发一个API,UI的要求基于搜索字段的值,我将收到过滤结果。UI上有许多搜索字段 示例代码-Node.js 如何在使用nestjs查询生成器生成的查询中动态添加where子句?,node.js,nestjs,query-builder,typeorm,Node.js,Nestjs,Query Builder,Typeorm,我正在开发一个API,UI的要求基于搜索字段的值,我将收到过滤结果。UI上有许多搜索字段 示例代码- async getRoomsByMember(active: boolean, email: string): Promise<any[]> { return await getRepository(Room) .createQueryBuilder('room') .innerJoinAndSelect('room.member', 'mem
async getRoomsByMember(active: boolean, email: string): Promise<any[]> {
return await getRepository(Room)
.createQueryBuilder('room')
.innerJoinAndSelect('room.member', 'member')
.where("room.active = :active", {active: active})
.andWhere("member.email = :email", { email: email })
.getMany();
}
异步getRoomsByMember(活动:布尔,电子邮件:字符串):承诺{
返回等待获取存储库(房间)
.createQueryBuilder(“房间”)
.innerJoinAndSelect('room.member','member')
.where(“room.active=:active”,{active:active})
.andWhere(“member.email=:email”,{email:email})
.getMany();
}
如果用户在筛选字段(如-成员电话号码、城市、州、国家和邮政编码)中输入值,我将能够动态筛选房间成员。您就快到了:-)
您可以尝试以下方法:
异步getRoomsByMember(活动:布尔,电子邮件:字符串):承诺{
const query=getRepository(房间)
.createQueryBuilder(“房间”)
.innerJoinAndSelect('room.member','member')
。其中(“room.active=:active”,{active:active});
//继续添加其他字段,如会员电话号码、城市、州、国家和邮政编码,如下所示
如果(电子邮件){
query.andWhere(“member.email=:email”,{email:email})
}
返回query.getMany();
}