Tengo una ruta de obtención que recibe dos parámetros "límite" y "página".
router.get('/:limit/:page', userController.list); class UserController{ public list(req:Request, res:Response): void{ const limit:number = +req.params.limit || 25; const page:number = +req.params.page || 0; } } export const userController: UserController = new UserController();El problema es que estos parámetros no están definidos cuando hago la solicitud del cartero.
localhost:3000/api/users/?limit=2&page=1Está pasando parámetros de consulta, pero su ruta quiere parámetros de ruta.
Para usar parámetros de ruta, su solicitud debe verse como http://localhost:3000/api/users/2/1
Sin embargo, por lo general, la paginación se pasa como parámetros de consulta, en cuyo caso su controlador de ruta debería verse así
import { Request, Response } from "express"; interface PaginationQuery { limit?: number; page?: number; } type PaginationRequest = Request<{}, any, any, PaginationQuery>; router.get('/', userController.list); class UserController{ public list(req: PaginationRequest, res: Response): void { const limit = req.query.limit ?? 25; const page = req.query.page ?? 0; } }