CodeBlanks Logo Icon CodeBlanks

Validation

Config validation ve schema doğrulama öğrenirsin.

Validation (doğrulama)

Ortam değişkenleri her zaman dize olarak gelir. Bir değişkenin tanımlı olduğunu, doğru türde olduğunu ve geçerli değer içerdiğini doğrulamak iyi bir uygulamadır. Bu, validation'dır.

Örnek: if (!process.env.PORT) throw new Error("PORT gerekli");. Bu, PORT tanımsızsa uygulamayı erken aşamada durdurur. Hata, ileride gizli bir şekilde ortaya çıkmaz; hemen başta belli olur. joi veya zod gibi kütüphaneler yapılandırma doğrulaması için kullanılır. Örnek: const tanim = Joi.object({ port: Joi.number().required() }); const config = tanim.validate({ port: process.env.PORT });. Bu, port'un bir sayı olduğunu ve tanımlı olduğunu doğrular. Doğrulama, yapılandırma hatalarını erkenden yakalar.

Joi ile doğrulama

Joi, Node.js için popüler bir doğrulama kütüphanesidir. Bir tanım oluşturur ve veriyi bu tanıma göre doğrular. Yapılandırma doğrulamasında sıkça kullanılır.

Örnek: const Joi = require("joi"); const tanim = Joi.object({ port: Joi.number().port().required(), nodeEnv: Joi.string().valid("development", "production").required() }); const { error, value } = tanim.validate({ port: process.env.PORT, nodeEnv: process.env.NODE_ENV });. error varsa yapılandırma geçersizdir; value doğrulanmış yapılandırmadır. Joi, türleri ve izin verilen değerleri denetler. Hata varsa uygulama erken durdurulur. Bu, üretimde kötü yapılandırmadan kaynaklı gizli hataları önler. Joi yerine zod veya env-var da kullanılabilir.

Uygulama PORT doğrulaması ekle

dotenv'i etkinleştir. if (!process.env.PORT) throw new Error("PORT gerekli") ile doğrulama ekle. const port = process.env.PORT yaz. console.log ile port'u yazdır.

Başlangıç kodu

index.js
// dotenv etkinleştir
// buraya yaz

// PORT doğrulaması ekle
// buraya yaz

// port yazdır
// buraya yaz

Örnek çözüm

index.js
require("dotenv").config();
if (!process.env.PORT) throw new Error("PORT gerekli");
const port = process.env.PORT;
console.log(port);

Beklenen çıktı

3000

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Validation ne işe yarar?

index.js
if (!process.env.PORT) throw new Error(...)
  • Yapılandırma hatalarını erken yakalar Doğru cevap
  • Daha hızlı ağ sağlar
  • Veritabanını yedekler
  • Kullanıcı arayüzünü çizer

Açıklama: Validation hataları erken yakalar.

2 throw çağrısını tamamla

Soru
if (!process.env.PORT) ____ new Error("PORT gerekli");
Cevap
if (!process.env.PORT) throw new Error("PORT gerekli");

Açıklama: throw new Error ile hata fırlatılır.

3 Parçayı rolüne eşle

Kavram Anlamı
throw new Error Hata fırlatır
Joi.object Tanım oluşturur
tanim.validate Veriyi doğrular
required() Zorunlu alan

İleri seviye bölümündeki tüm dersler