NestJS如何在同一请求中传递@Param和@Query



我设置了这个路由:

@Get('/name/like')
findByLikeName(@Query() query: { supplierID: string; name: string }) {
return this.supplierProductService.findByLikeName(query);
}

它利用底层服务中的查询参数:

async findByLikeName({
supplierID,
name,
}: {
supplierID: string;
name: string;
}): Promise<SupplierProduct[]> {
return await this.supplierProductRepository.findAll({
where: {
name: {
[Op.like]: `%${name}%`,
},
supplierID: supplierID,
},
});
}

然而,假设我想将supplierID移动到/:supplierIDroute-param中,同时在查询对象中维护名称(以及潜在的其他查询参数(,我将如何实现这一点?

你几乎已经得到了它。你只需要设置@Get()路由,就可以知道它使用的是URL参数,并执行以下操作:

@Get('/name/like/:supplierID')
findByLikeName(
@Query() query: { name: string },
@Param() param: { supplierID: string }
) {
return this.supplierProductService.findByLikeName({...query, ...param});
}

相关内容

  • 没有找到相关文章

最新更新