Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在使用nestjs查询生成器生成的查询中动态添加where子句?_Node.js_Nestjs_Query Builder_Typeorm - Fatal编程技术网

Node.js 如何在使用nestjs查询生成器生成的查询中动态添加where子句?

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

我正在开发一个API,UI的要求基于搜索字段的值,我将收到过滤结果。UI上有许多搜索字段

示例代码-

  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(); }