zod-validation-patterns
Validar entradas con patrones Zod
Las aplicaciones TypeScript a menudo carecen de validación adecuada de entradas, lo que conduce a errores en tiempo de ejecución y vulnerabilidades de seguridad. Esta habilidad proporciona patrones de validación Zod completos para validar solicitudes de API, datos de formularios y entradas de usuario con esquemas seguros para tipos.
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「zod-validation-patterns」。 Crear un esquema de registro de usuario con campos de email, contraseña y confirmar contraseña
預期結果:
- ```typescript
- import { z } from 'zod'
- export const userRegistrationSchema = z.object({
- email: z.string().email('Invalid email address'),
- password: z.string()
- .min(8, 'Password must be at least 8 characters')
- .regex(/[A-Z]/, 'Password must contain an uppercase letter')
- .regex(/[0-9]/, 'Password must contain a number'),
- confirmPassword: z.string()
- }).refine(
- (data) => data.password === data.confirmPassword,
- {
- message: 'Passwords do not match',
- path: ['confirmPassword'],
- }
- )
- type UserRegistration = z.infer<typeof userRegistrationSchema>
- ```
正在使用「zod-validation-patterns」。 Validar el cuerpo de solicitud de una ruta de API de Next.js
預期結果:
- Safe parsing pattern for API routes:
- ```typescript
- import { NextRequest, NextResponse } from 'next/server'
- import { z } from 'zod'
- const createUserSchema = z.object({
- name: z.string().min(1).max(100),
- email: z.string().email(),
- role: z.enum(['admin', 'user', 'guest']).default('user'),
- })
- export async function POST(request: NextRequest) {
- const body = await request.json()
- const result = createUserSchema.safeParse(body)
- if (!result.success) {
- return NextResponse.json(
- { error: 'Validation failed', details: result.error.format() },
- { status: 400 }
- )
- }
- // Use validated result.data
- const { name, email, role } = result.data
- // ... process valid data
- }
- ```
安全審計
安全This skill is a documentation resource for the Zod validation library. All 970 static findings are false positives. The analyzer misidentified TypeScript code examples (using backticks in markdown) as Ruby shell commands. No actual executable code, cryptographic operations, or credential handling exists in this skill. All network references are legitimate documentation URLs to zod.dev, typescriptlang.org, and nextjs.org. This is a safe, read-only documentation skill for input validation patterns.
品質評分
你能建構什麼
Validar cuerpos de solicitudes de API en rutas de Next.js
Usar esquemas Zod para validar cuerpos de solicitudes JSON entrantes en rutas de API de Next.js y Server Actions, retornando respuestas de error claras para entradas inválidas.
Validar envíos de formularios con esquemas seguros para tipos
Definir esquemas para campos de formulario incluyendo email, contraseña, números de teléfono y validadores personalizados para garantizar la integridad de datos antes del procesamiento.
Crear patrones de validación reutilizables para tipos de datos comunes
Construir una biblioteca de esquemas reutilizables para emails, contraseñas, URLs, UUIDs y otros tipos de datos comunes para garantizar la consistencia en la base de código.
試試這些提示
Crear un esquema de validación Zod para un {entity_name} con estos campos:
- {field_1}: {type_1} con {constraints_1}
- {field_2}: {type_2} con {constraints_2}
- {field_3}: {type_3} con {constraints_3}
Proporcionar la definición del esquema y mostrar cómo inferir el tipo TypeScript usando z.infer.Agregar un refinamiento personalizado al siguiente esquema Zod para aplicar:
- {validation_rule}
- {another_validation_rule}
Esquema:
```{typescript}
{existing_schema}
```
Mostrar cómo usar el método refine o superRefine con rutas de error apropiadas.Crear un esquema Zod que transforme datos de entrada: 1. Recortar espacios en blanco de cadenas 2. Convertir cadenas a minúsculas para emails 3. Forzar números desde entradas de cadena 4. Establecer valores predeterminados para campos opcionales faltantes Mostrar el esquema completo con transformaciones y demostrar el comportamiento de transformación.
Crear un validador Zod asíncrono que verifique: - Unicidad de nombre de usuario consultando una base de datos - Formato de email y restricciones de dominio - Verificaciones de permisos asíncronas requeridas Usar refine con funciones asíncronas y mostrar manejo de errores apropiado con safeParse.
最佳實務
- Usar safeParse en lugar de parse para evitar excepciones y manejar errores apropiadamente en código de producción
- Validar en los límites del sistema como rutas de API, Server Actions y fuentes de datos externas
- Definir mensajes de error personalizados para validación orientada al usuario para mejorar la experiencia del usuario
- Reutilizar esquemas de validación comunes en toda la base de código para garantizar la consistencia
避免
- Usar parse sin try-catch en código de producción puede causar excepciones no manejadas
- Volver a validar datos internos ya validados añade sobrecarga innecesaria
- Falta de rutas de error en refinamientos hace difícil depurar fallos de validación
- Lógica de validación codificada en componentes en lugar de esquemas reutilizables
常見問題
¿Qué es Zod y por qué debería usarlo?
¿Cómo se compara Zod con otras bibliotecas de validación?
¿Puede Zod validar datos asíncronos?
¿Cómo manejo errores de validación en interfaces de usuario?
¿Qué tipos puede validar Zod?
¿Cómo creo un esquema a partir de un tipo TypeScript existente?
開發者詳情
授權
MIT
引用
main