Zod ist die bekannteste Validierungsbibliothek im TypeScript-Ökosystem. Mit Zod erstellen Sie ein Schema und validieren Ihre Daten entsprechend dem Schema. Beachten Sie das folgende Schema:
import { z } from 'zod' const UserSchema = z.object({ name: z.string().min(1), age: z.number({ coerce: true }).min(18), email: z.string().email(), })
Dieses Schema kann verwendet werden, um ein Objekt wie folgt zu validieren:
const data = { name: 'John Doe', age: 18, email: 'john@example.com', } // If there is a validation error, it throws an error const validatedData = UserSchema.parse(data) // If there is a validation error, it returns an error object for you to handle later const safeValidatedData = UserSchema.safeParse(data) // => { success: false; error: ZodError } // => { success: true; data: 'billie' }
Zod ist in der Lage, verschiedene Arten von Validierungen an Ihren Daten durchzuführen. Lesen Sie daher unbedingt die Dokumentation für weitere Details.
Wir können Zod verwenden, um die in process.env vorhandenen Werte zu validieren und sie sogar zu verarbeiten, bevor wir die Umgebungsvariablen in unserer Anwendung verwenden. Normalerweise erstelle ich gerne eine Environment.ts-Datei, wie im folgenden Beispiel:
import { z } from 'zod' const environmentSchema = z.object({ // Define the possible values for NODE_ENV, always leaving a default value: NODE_ENV: z.enum(['test', 'development', 'production']).default('production'), // Environment variables are always defined as strings. Here, convert the string to a number and set a default value: PORT: z.number({ coerce: true }).default(3000), }) export const env = environmentSchema.parse(process.env)
Dann importieren Sie einfach die Variable und verwenden sie in meiner gesamten Anwendung:
import Fastify from 'fastify' import { env } from './environment.js' const app = Fastify({ logger: true }) app.listen({ port: env.PORT }, (err) => { if (err) { app.log.error(err) process.exit(1) } })
Das obige ist der detaillierte Inhalt vonValidieren Sie Ihre Umgebungsvariablen mit Zod. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!