UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

41 lines (40 loc) 1.46 kB
/** * validate.ts — Express Zod 校验中间件 * * 用法: * import { validate, validateQuery } from '../middleware/validate.js'; * router.post('/batch-enable', validate(BatchEnableBody), async (req, res) => { ... }); * router.get('/search', validateQuery(SearchQuery), async (req, res) => { ... }); * * 校验通过后: * - req.body / req.query 被替换为 Zod parse 后的数据(已应用 defaults + coercion) * - handler 中直接使用,类型安全 * * 校验失败: * - 返回 400 + 结构化 VALIDATION_ERROR(包含 fieldErrors / formErrors) * * @module http/middleware/validate */ import type { NextFunction, Request, Response } from 'express'; import type { z } from 'zod'; /** * 校验 req.body 的中间件工厂 * * @param schema Zod schema(通常为 z.object) * @returns Express 中间件 */ export declare function validate<T extends z.ZodType>(schema: T): (req: Request, res: Response, next: NextFunction) => void; /** * 校验 req.query 的中间件工厂 * * @param schema Zod schema * @returns Express 中间件 */ export declare function validateQuery<T extends z.ZodType>(schema: T): (req: Request, res: Response, next: NextFunction) => void; /** * 校验 req.params 的中间件工厂 * * @param schema Zod schema * @returns Express 中间件 */ export declare function validateParams<T extends z.ZodType>(schema: T): (req: Request, res: Response, next: NextFunction) => void;