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;
}
}
我有一个 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;
}
}