Nestjs 如何验证 query 参数
NestJS 采用强大的管道(Pipes)概念来处理验证逻辑,它允许你以声明式的方式应用验证规则。对于验证查询参数(query parameters),通常使用类验证器(class-validator)和转换器(class-transformer)库,这使得能够通过数据传输对象(Data Transfer Objects, DTOs)来指定验证规则。以下是使用 NestJS 验证查询参数的步骤示例:步骤 1: 安装必要的包首先,需要安装 和 包,如果尚未安装,可以使用以下命令:步骤 2: 创建 DTO 并添加验证规则接下来,创建一个 DTO,该 DTO 用于定义和验证查询参数。你可以使用 提供的装饰器来添加验证规则。在这个例子中,我们定义了三个可选的查询参数:(字符串类型),(整数类型,必须大于或等于0),和 (整数类型,必须大于1)。步骤 3: 应用 DTO 到请求处理函数在你的控制器中,你可以使用 装饰器来自动应用 DTO,并触发验证逻辑。在 装饰器中, 选项会确保请求中的查询参数转换成 DTO 定义的数据类型,而且执行验证。如果查询参数无效,NestJS 将自动返回 400 (Bad Request) 响应,并且提供详细的错误信息,这样前端开发者可以清楚地知道哪些参数不符合要求。示例假设我们有一个获取商品列表的接口,该接口接受 (用于模糊查询商品名称), 和 (用于分页)查询参数。使用上述的 DTO 和控制器配置,如果用户发送了 这样的请求,NestJS 将返回 400 响应并且提示 参数必须大于或等于0。以上就是如何在 NestJS 中验证查询参数的过程。利用 NestJS 的管道和类验证器,我们可以轻松地为任何路由添加复杂的验证逻辑。