Rumah  >  Artikel  >  hujung hadapan web  >  Sahkan pembolehubah persekitaran anda dengan Zod

Sahkan pembolehubah persekitaran anda dengan Zod

WBOY
WBOYasal
2024-08-16 12:40:06843semak imbas

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(),
})

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' }

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)

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)
  }
})

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

Kenyataan:
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