Sahkan pembolehubah persekitaran anda dengan Zod

WBOY
Lepaskan: 2024-08-16 12:40:06
asal
869 orang telah melayarinya

Validate your environment variables with Zod

Zod ialah perpustakaan pengesahan paling terkenal dalam ekosistem TypeScript. Dengan Zod, anda mencipta skema dan mengesahkan data anda mengikut skema. Perhatikan skema di bawah:

import { z } from 'zod'

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

Skema ini boleh digunakan untuk mengesahkan objek seperti berikut:

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' }
Salin selepas log masuk

Zod mampu melakukan pelbagai jenis pengesahan pada data anda, jadi pastikan anda membaca dokumentasi untuk mendapatkan butiran lanjut.

Mengesahkan Pembolehubah Persekitaran

Kami boleh menggunakan Zod untuk mengesahkan nilai yang ada dalam process.env dan juga memprosesnya sebelum menggunakan pembolehubah persekitaran dalam aplikasi kami. Biasanya, saya suka mencipta fail environment.ts, seperti dalam contoh di bawah:

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)
Salin selepas log masuk

Kemudian, hanya import pembolehubah dan gunakannya sepanjang aplikasi saya:

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)
  }
})
Salin selepas log masuk

Atas ialah kandungan terperinci Sahkan pembolehubah persekitaran anda dengan Zod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!