我设置了这个路由:
@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});
}