«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Проверьте переменные среды с помощью Zod

Проверьте переменные среды с помощью Zod

Опубликовано 20 августа 2024 г.
Просматривать:128

Validate your environment variables with Zod

Zod — самая известная библиотека проверки в экосистеме TypeScript. С помощью Zod вы создаете схему и проверяете свои данные в соответствии со схемой. Обратите внимание на схему ниже:

import { z } from 'zod'

const UserSchema = z.object({
  name: z.string().min(1),
  age: z.number({ coerce: true }).min(18),
  email: z.string().email(),
})

Эту схему можно использовать для проверки объекта следующим образом:

const data = {
  name: 'John Doe',
  age: 18,
  email: '[email protected]',
}

// 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 способен выполнять различные типы проверок ваших данных, поэтому обязательно прочтите документацию для получения более подробной информации.

Проверка переменных среды

Мы можем использовать Zod для проверки значений, присутствующих вprocess.env, и даже обрабатывать их перед использованием переменных среды в нашем приложении. Обычно мне нравится создавать файл Environment.ts, как показано в примере ниже:

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)

Затем просто импортируйте переменную и используйте ее во всем приложении:

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)
  }
})
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/douglasdemoura/validate-your-environment-variables-with-zod-2gna?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3