Validation
- Node.js kursu
- İleri seviye
- Ders 70/83
- 5 dk
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
// dotenv etkinleştir
// buraya yaz
// PORT doğrulaması ekle
// buraya yaz
// port yazdır
// buraya yazÖrnek çözüm
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?
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
if (!process.env.PORT) ____ new Error("PORT gerekli");
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 |