Node.js 请求参数未定义

Node.js Request params undefined

我有一个 get 路由接收两个参数“limit”和“page”。

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

问题是当我向邮递员发出请求时,这些参数未定义。

localhost:3000/api/users/?limit=2&page=1

你超过了 query parameters but your route wants route parameters

要使用路由参数,您的请求应该类似于 http://localhost:3000/api/users/2/1

通常情况下,分页 作为查询参数传递的,在这种情况下,您的路由处理程序应该如下所示

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