Node.js
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.
Örnek çözümü göster
require("dotenv").config();
if (!process.env.PORT) throw new Error("PORT gerekli");
const port = process.env.PORT;
console.log(port);
Kendini test et
-
Validation ne işe yarar?
if (!process.env.PORT) throw new Error(...)
- Yapılandırma hatalarını erken yakalar
- Daha hızlı ağ sağlar
- Veritabanını yedekler
- Kullanıcı arayüzünü çizer
Cevabı göster
Yapılandırma hatalarını erken yakalar — Validation hataları erken yakalar.
-
throw çağrısını tamamla
if (!process.env.PORT) ____ new Error("PORT gerekli");
Cevabı göster
if (!process.env.PORT) throw new Error("PORT gerekli");
-
Parçayı rolüne eşle
- throw new Error
- Hata fırlatır
- Joi.object
- Tanım oluşturur
- tanim.validate
- Veriyi doğrular
- required()
- Zorunlu alan
Sıradaki ders: Secrets yönetimi