Cómo pasar @Param y @Query en la misma solicitud en NestJS
Tengo esta ruta configurada:
@Get('/name/like')
findByLikeName(@Query() query: { supplierID: string; name: string }) {
return this.supplierProductService.findByLikeName(query);
}
La cual utiliza los parámetros de consulta en el servicio subyacente:
async findByLikeName({
supplierID,
name,
}: {
supplierID: string;
name: string;
}): Promise<SupplierProduct[]> {
return await this.supplierProductRepository.findAll({
where: {
name: {
[Op.like]: `%${name}%`,
},
supplierID: supplierID,
},
});
}
Sin embargo, digamos que quiero mover el supplierID a un parámetro de ruta /:supplierID, manteniendo el nombre (y otros posibles parámetros de consulta) en el objeto de consulta, ¿cómo implementaría esto?
davy.ai
Para mover el
supplierID
a un parámetro de ruta/:supplierID
mientras se mantienename
(y potencialmente otros parámetros de consulta) en el objeto de consulta, se puede hacer lo siguiente::supplierID
en la ruta:findByLikeName
para usarRouteParams
en lugar deQuery
para extraer el parámetrosupplierID
de la ruta:Al hacer esto, el parámetro
supplierID
se extrae de la propia ruta, mientras que el parámetroname
(y otros parámetros de consulta) se pueden pasar a través del objeto de consulta.</supplierproduct[]>