Maison > interface Web > js tutoriel > le corps du texte

Validez vos variables d'environnement avec Zod

WBOY
Libérer: 2024-08-16 12:40:06
original
869 Les gens l'ont consulté

Validate your environment variables with Zod

Zod est la bibliothèque de validation la plus connue de l'écosystème TypeScript. Avec Zod, vous créez un schéma et validez vos données selon le schéma. Observez le schéma ci-dessous :

import { z } from 'zod'

const UserSchema = z.object({
  name: z.string().min(1),
  age: z.number({ coerce: true }).min(18),
  email: z.string().email(),
})
Copier après la connexion

Ce schéma peut être utilisé pour valider un objet comme suit :

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' }
Copier après la connexion

Zod est capable d'effectuer différents types de validations sur vos données, alors assurez-vous de lire la documentation pour plus de détails.

Validation des variables d'environnement

Nous pouvons utiliser Zod pour valider les valeurs présentes dans process.env et même les traiter avant d'utiliser les variables d'environnement dans notre application. Habituellement, j'aime créer un fichier environnement.ts, comme dans l'exemple ci-dessous :

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)
Copier après la connexion

Ensuite, importez simplement la variable et utilisez-la dans toute mon application :

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)
  }
})
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!