Node.js'te Basit Veri Doğrulama Örnekleri

Node.js'te Basit Veri Doğrulama Örnekleri

Nodejs kullanarak veri doğrulamanın önemini ve bu işlemi uygulamak için kullanılan kütüphaneleri anlatan bir makale Joi ve Validatorjs gibi popüler kütüphanelerden bahsediliyor ve şema oluşturarak ve özelleştirilmiş doğrulama kuralları yazarak bu kütüphaneleri kullanarak veri doğrulama işlemlerinin nasıl gerçekleştirildiği anlatılıyor Joi kütüphanesi, Nodejs için en popüler olanıdır ve tüm temel veri türlerini desteklerken özelleştirilmiş kurallar oluşturmanızı da sağlar Validatorjs ise Joi'dan daha az özellikli olmasına rağmen kolay kullanımı sayesinde önemli bir seçenektir Özelleştirilmiş doğrulama fonksiyonları oluşturarak da ihtiyaçlarınıza uygun veri doğrulama kuralları oluşturabilirsiniz Veri doğrulama orta katmanı oluşturarak da tüm uygulamada veri doğrulama işlemlerini daha kolay bir şekilde yapabilirsin

Node.js'te Basit Veri Doğrulama Örnekleri

Node.js, server-side JavaScript çerçevesi ile tamamen yazılmış bir platformdur. Veri doğrulama, işlevsel bir uygulama oluşturmanın önemli bir parçasıdır. Bu makale, Node.js kullanarak nasıl basit veri doğrulama yöntemleri uygulanacağını açıklar. Node.js'in birden fazla veri doğrulama kütüphanesi olmasına rağmen, Joi ve Validator.js, en popüler olanları arasındadır.

Joi kütüphanesi, Node.js için en popüler veri doğrulama kütüphanesidir. Joi kullanarak, veri doğrulamak için bir şema tanımlamak çok kolaydır. Validator.js kütüphanesi Joi'a göre daha az özellikli olsa da, yine de önemli bir veri doğrulama aracıdır.

Şema tanımlandıktan sonra, doğrulama yapmak için Joi veya Validator.js kullanılabilir. İhtiyacınıza göre özelleştirilmiş veri doğrulama kurallarını da oluşturabilirsiniz. Örneğin, kendi validator fonksiyonunuzu yazarak özelleştirilmiş bir doğrulama kuralı ekleyebilirsiniz. Veri doğrulama orta katmanı oluşturarak, tüm uygulamanızda veri doğrulamayı tek bir noktada yapabilirsiniz.

Node.js kullanarak basit bir veri doğrulama yöntemi uygulamak gerektiğinde, Joi ve Validator.js kütüphanelerinin öğrenmesi ve kullanımı oldukça basittir. Bu kütüphanelerle birlikte, özelleştirilmiş veri doğrulama kuralları da oluşturabilir ve veri doğrulama işlemini uygulamanızın herhangi bir yerinde bir defa yapabilirsiniz.


Kütüphaneler

Node.js ile veri doğrulama yapmak için hazır kütüphaneler kullanabilirsiniz. Bu kütüphaneler, veri tipi kontrolü, alan kontrolü, sayısal sınır kontrolü ve diğer birçok doğrulama özelliği sağlar.

En popüler Node.js veri doğrulama kütüphanesi Joi'dir. Joi, kullanımı kolay ve güçlü bir doğrulama kütüphanesidir. Şema oluşturma ve veri doğrulama işlemleri için fonksiyonlar sağlar. Joi ile doğrulama şemaları oluştururken zorunlu alanlar, maksimum ve minimum değerler ve parametre uzunlukları gibi özellikleri tanımlayabilirsiniz.

Validator.js, Joi'ya kıyasla daha az özelliğe sahip bir başka veri doğrulama kütüphanesidir. Ancak kullanımı oldukça basittir ve kolayca özelleştirilebilir. Validator.js ile, özel doğrulama kuralları tanımlayabilir ve şemalar oluşturabilirsiniz.

Eğer veri doğrulama kütüphanelerinde bulunmayan özel doğrulama kurallarınız varsa, kendi validator fonksiyonlarınızı oluşturabilirsiniz. Kendi validator fonksiyonlarınızı kullanarak, tam olarak ihtiyacınızı karşılayacak özel doğrulama özellikleri sağlayabilirsiniz.

Ayrıca, veri doğrulama işlemlerini daha kolay bir hale getirmek için veri doğrulama orta katmanı da oluşturabilirsiniz. Veri doğrulama orta katmanı, doğrulama işlemlerini tek bir noktada toplar ve bu şekilde tüm uygulamanızda veri doğrulama işlemlerini daha kolay bir şekilde yapmanızı sağlar.


Joi

Joi, Node.js kullanarak veri doğrulama yapmak için en yaygın kullanılan kütüphanedir. Joi, hem frontend hem de backend tarafında kullanılabilir ve tamamen kendine özgü bir DSL (domain-specific language) yapısına sahiptir. Joi, özellikle HTTP istekleri, form verileri, oturum bilgileri ve JWT tokenları gibi verilerin doğruluğunu kontrol etmek için kullanılır.

Joi kullanarak, doğrulayacak veri için bir şema tanımlayabilirsiniz. Şema, doğrulanacak verinin neye benzediğine ve hangi kural ve kısıtlamalara tabi olduğuna dair bilgi içerir. Joi, tüm temel veri türlerini destekler (stringler, sayılar, booleans, tarihler vb.) ve özelleştirilmiş kural setleri oluşturmanıza da izin verir.

Joi Üstünlükleri Joi Dezavantajları
- Kapsamlı ve esnek bir API - Bazı kullanıcılar tarafından Karmaşık bulunabilir
- Doğrulama Şeması kolayca okunabilir ve anlaşılabilir - Bazı özellikleri, özellikle özelleştirme konusundaki düzenlemeler, belirgin bir öğrenme eğrisi gerektirir.
- Doğrulama Şeması kolaylıkla yeniden kullanılabilir - Bazı durumlarda, belirli kullanım durumları için yetenekler sınırlı olabilir.

Joi, veri doğrulamanın yanı sıra, veri dönüştürme (örneğin bir dizeyi bir tarihe dönüştürme) ve verileri temizleme (örneğin bir dizeyi boşluklarla silme) için de kullanılabilir. Joi'nin bir başka avantajı, tamamen dökümasyonuna yer veren bir yapıya sahip olmasıdır. Bu sayede, uygulamanızda kullanılan şemalar ve kısıtlamalar hakkında tam bir belgeleme sağlayabilirsiniz.

Joi, validator.js kütüphanesiyle karşılaştırıldığında biraz daha karmaşık bir yapıya sahip olmasına rağmen, daha kapsamlı bir API'ya sahiptir. Aynı zamanda, validator.js kütüphanesi daha az işlevselliğe sahip olmasına rağmen, daha basit bir yapıya sahiptir.


Doğrulama Şeması Oluşturma

Joi, Node.js'te veri doğrulama yapmak için en popüler kütüphanedir. Joi kullanarak, doğrulanacak veri için şema oluşturabilirsiniz. Şema, doğrulanacak verinin hangi özelliklere sahip olması gerektiğini belirler ve bu özelliklere uygun olmayan verileri kabul etmez. Şema oluştururken, her bir özellik için bir Joi tipi belirlemeniz yeterlidir. Örneğin, bir e-posta adresi girişini doğrulamak istiyorsanız, "email" tipini kullanabilirsiniz.

Aşağıdaki örnek, bir kullanıcının adı, soyadı ve e-posta adresini doğrulamak için Joi kullanarak şema tanımlar:

Alan Adı Joi Tipi
ad string().required()
soyad string().required()
e-posta string().email().required()

Yukarıdaki örnekte, kullanıcının adı ve soyadı için "string().required()" kullanılmıştır. Bu, kullanıcının bu alanlara veri girmesi gerektiğini belirtir. Ayrıca, kullanıcının e-posta adresini doğrulamak için "string().email().required()" kullanılmıştır. Bu, kullanıcının e-posta adresinin bir e-posta adresi olması gerektiğini ve boş bırakılamayacağını belirtir.

Şema belirleme işlemi tamamlandıktan sonra, Joi kullanarak veriyi doğrulayabilirsiniz. Veri şema ile uyumlu değilse, validasyon hatası alırsınız. Aşağıdaki örnek, yukarıdaki şema kullanılarak bir kullanıcının verisinin doğrulanmasını gösterir:

const Joi = require('joi');const schema = Joi.object({  ad: Joi.string().required(),  soyad: Joi.string().required(),  eposta: Joi.string().email().required()});const kullanici = {  ad: 'John',  soyad: 'Doe',  eposta: 'john@doe'};const { error } = schema.validate(kullanici);if (error) {  console.log(error.details[0].message);} else {  console.log('Kullanıcı verileri doğrulandı.');}

Veri Doğrulama

Veri doğrulama işlemi, şema tanımlama işlemi bittikten sonra gerçekleştirilir. Joi, doğrulama işlemi için kullanabileceğiniz birçok yöntem sunar. Örneğin, şema tanımlandığında verinin tüm alanlarının belirtilen tipe dönüştürülebilmesini sağlayan "stripUnknown" yöntemini kullanabilirsiniz. Joi'nin sunduğu "validate" yöntemi ile, doğrulama işlemini kolayca gerçekleştirebilirsiniz.

Bir şema tanımlandıktan sonra, "validate" yöntemi ile veri doğrulama işlemi gerçekleştirilir. Bu yöntem, doğrulama işlemi sırasında geçerli olmayan tüm alanları, bu alanların değerini null olarak belirleyecektir. "validate" yöntemi geriye doğru uyumlu olduğu için, halihazırda var olan alanların doğruluğunu kontrol edebilir ve yeni alanlar eklemenizi engellemez.

Özelleştirilmiş hata mesajları oluşturmak için, Joi'nin "validate" yöntemi içinde "messages" seçeneğini kullanabilirsiniz. Ayrıca, "abortEarly" seçeneği ile, doğrulama işlemi sırasında hataların sayısını kontrol edebilirsiniz. Bu seçenek, false olarak ayarlanırsa, doğrulanmayan tüm alanları kontrol eder ve geri bildirim olarak tüm hataları döndürür.

Sonuç olarak, Joi kullanarak veri doğrulama işlemi oldukça kolaydır. Şema tanımlama ve doğrulama işlemini aynı kütüphane içinde gerçekleştirmek çok avantajlıdır. Joi, veriyi doğrulama işlemi sırasında hataların sayısının kontrol edilmesine olanak tanıyan birçok yöntem sunar. Bu sayede, uygulamanızda oluşabilecek hataların önüne geçebilirsiniz.


Validator.js

Validator.js, basit veri doğrulama işlemleri için ideal bir kütüphanedir. Joi'a kıyasla daha az özellikli olmasına rağmen, işinizi görmek için yeterlidir. Validator.js kullanarak, doğrulama şeması tanımlayabilir ve verilerinizi kolayca doğrulayabilirsiniz.

Özellikle küçük projeler için Validator.js, hafif bir seçim olabilir. Bu kütüphane, JavaScript'teki standart veri tiplerinin doğrulama işlemlerini kapsar. Ayrıca, özel doğrulama kuralları eklemeniz de mümkündür. Validator.js'in avantajı, kod kalabalığına neden olan gereksiz işlevleri içermemesidir. Böylece, uygulamanızı daha temiz ve düzenli hale getirebilirsiniz.

Validator.js kullanırken, kodunuzun kolayca anlaşılabilmesi için doğrulama kurallarını ayırmanız önemlidir. Ayrıca, özelleştirilmiş bir doğrulama kuralları listesi oluşturmak için

    etiketi kullanabilirsiniz. Örneğin, uzunluk kısıtlamaları veya sayısal değer aralığı kısıtlamaları gibi çeşitli doğrulama kurallarının yanında kullanılabilecek seçenekler mevcuttur. Validator.js, ufak projelerde uygun bir seçenek olabilir.


    Doğrulama Şeması Oluşturma

    Node.js ile veri doğrulama yaparken, Validator.js kullanarak da şema tanımlayabilirsiniz. Şema tanımlamak, doğrulamanın neye göre yapılacağına dair bir yapı oluşturur. Validator.js ile şema oluşturmak oldukça kolaydır. Şema için bir JSON nesnesi oluşturmanız gerekir. Bu nesnede, doğrulamanın nasıl yapılacağına dair tüm kurallar yer alır. Örneğin, bir kullanıcının adı en az 3 karakter uzunluğunda olmalıdır gibi bir kural belirleyebilirsiniz.

    Aşağıdaki örnekte, Validator.js kullanarak ad, soyad, yaş ve e-posta verilerini doğrulamak için bir şema tanımlanmıştır:

    Alan Kural
    ad en az 2 karakter olmalı
    soyad en az 2 karakter olmalı
    yaş 18'den büyük olmalı
    e-posta geçerli bir e-posta adresi olmalı

    Bu şema, alanların her biri için bir kural belirler. Alanların adları için bir anahtar kullanılır ve kural, bir dize veya işlev olarak belirtilir. Şema oluşturulduktan sonra, Validator.js kullanarak veriyi doğrulamak oldukça kolaydır.


    Veri Doğrulama

    Veri doğrulama adımına geldiğimizde, Validator.js kullanarak veriyi doğrulayabilirsiniz. Şema tanımlandıktan sonra, gelen veriyi Validator.js ile kontrol edebilirsiniz. Validator.js'de yer alan fonksiyonlar, veri tipi, minimum veya maksimum uzunluk, boş olup olmaması gibi özellikleri kontrol etmektedir.

    Validator.js ile veri doğrulama yapmak oldukça basittir. İlk önce şemayı oluşturmanız gerekir. Şema tanımlandıktan sonra, gelen veriyi doğrulamak için Validator.js fonksiyonlarını kullanabilirsiniz. Bu adımda, doğrulanmayan verileri de belirleyebilirsiniz.

    Aşağıda, bir örnek Validator.js kodu verilmiştir:

    ```const validator = require('validator');

    const nameSchema = { name: { notEmpty: true, isLength: { options: [{ min: 2, max: 20 }], errorMessage: 'Must be between 2 and 20 chars long' }, errorMessage: 'Invalid Name' }};

    const validateName = (req, res, next) => { const user = { name: req.body.name };

    const validationResult = validator.check(user, nameSchema); if (!validationResult.isValid) { return res.status(422).json(validationResult.errors); }

    return next();};```

    Yukarıdaki örnekte kullanıcı adı doğrulama işlemi yapılmaktadır. `nameSchema` nesnesinde, doğrulama için gerekli özellikler belirtilmiştir. `validateName` fonksiyonu ise, doğrulama işlemini gerçekleştirmektedir. Eğer doğrulama başarısız olursa, uygun bir hata mesajı gönderilmektedir.

    Validator.js'in en büyük avantajlarından biri, çok çeşitli doğrulama fonksiyonlarına sahip olmasıdır. Bu fonksiyonlar sayesinde basit veri tiplerinin yanı sıra, özelleştirilmiş doğrulama işlemleri de gerçekleştirilebilir.

    Tabii ki, özelleştirilmiş doğrulama kuralı yazmak için, kendi validator fonksiyonunuza ihtiyacınız olabilir. Bu durumda, Validator.js kullanarak kendi validator fonksiyonunuzu kolaylıkla yazabilirsiniz.

    Sonuç olarak, Validator.js kullanarak kolayca ve basitçe veri doğrulama işlemleri gerçekleştirebilirsiniz. Bu kütüphane, Node.js geliştiricilerinin hayatını kolaylaştırmakta ve zaman kazandırmaktadır. Doğru şema tanımlama ve doğru fonksiyonları kullanarak, veri güvenliği artırılabilir ve uygulama hataları minimize edilebilir.


    Özelleştirilmiş Veri Doğrulama

    Veri doğrulama yöntemleri son derece önemlidir, ancak her projede standart doğrulama kuralları yeterli olmayabilir. İhtiyaçlarınıza özel doğrulama kuralları oluşturabileceğiniz gibi, var olan kütüphaneleri de özelleştirebilirsiniz.

    Özelleştirilmiş veri doğrulamaları oluşturmak için kendi validator fonksiyonlarınızı yazabilirsiniz. Bu sayede, örneğin benzersiz bir kullanıcı adı kontrolü yapmak isterseniz, bunu kolayca sağlayabilirsiniz. Validator fonksiyonlarınızı oluştururken, genel validator fonksiyonlarından farklı olarak özel ihtiyaçlarınıza yönelik doğrulama kuralları ekleyebilirsiniz.

    Bunun yanı sıra, veri doğrulama işlemini tüm uygulama boyunca tek bir noktada yapmak isterseniz, özelleştirilmiş veri doğrulama orta katmanları oluşturabilirsiniz. Bu sayede, doğrulama işlemini farklı noktalarda tekrarlamak yerine, tek bir yerde yaparak hem zaman hem de kod tekrarını azaltabilirsiniz.

    Bir başka seçenek ise, var olan veri doğrulama kütüphanelerini özelleştirmektir. Örneğin, Joi kütüphanesi çok sayıda doğrulama kuralı içermektedir, ancak projenize özgü bazı kural ihtiyaçlarına cevap vermeyebilir. Bu durumda, Joi kütüphanesini forklamak ve kendi özelleştirilmiş kütüphanenizi oluşturmak mümkündür.

    Özetle, özelleştirilmiş veri doğrulama yöntemleri sayesinde, projeleriniz için tam olarak ihtiyacınız olan doğrulama kurallarını oluşturabilirsiniz. Bu sayede hem güvenliği artırabilir hem de geliştirme sürecini daha verimli hale getirebilirsiniz.


    Kendi Validator Fonksiyonunuzu Yazın

    Veri doğrulama, Node.js gibi platformlar için uygulama yazarken oldukça önemlidir. Node.js, kütüphaneleri sayesinde veri doğrulama işlemini kolaylaştırır. Ancak bazen standart veri doğrulama kuralları yetersiz kalabilir. İşte tam burada, kendi validator fonksiyonunuzu yazarak özelleştirilmiş veri doğrulama kuralları ekleyebilirsiniz.

    Kendi validator fonksiyonunuzu tanımlamak oldukça kolaydır. Öncelikle validators ya da benzeri bir dizin oluşturun ve özelleştirilmiş validator fonksiyonunuzu bu dizin içerisinde tanımlayın. Örneğin, aşağıdaki gibi bir validators dizininiz var ise:

    Dizin Validator Fonksiyonu
    validators/age.js
    const validateAge = (age) => {  if (age < 18) {    return false;  }  return true;};module.exports = validateAge;

    Bu örnekte validators dizini içerisinde age.js isimli bir dosya ve içerisinde de validateAge isimli bir özelleştirilmiş validator fonksiyonu tanımlanmıştır.

    Bir validator fonksiyonu tanımlandıktan sonra, Joi veya Validator.js kullanarak tanımlama yapabilirsiniz. Örneğin:

    • Validator.js:
    • const validate = require('./validators/age');validator.is(validateAge(20)); // true
    • Joi:
    • const validate = require('./validators/age');const schema = Joi.number().custom(validate, 'custom validation');Joi.assert(20, schema); // true

    Bu şekilde özelleştirilmiş validator fonksiyonlarınızı tanımlayarak, standart validator kurallarına ek olarak özel kurallar da ekleyebilirsiniz.


    Veri Doğrulama Orta Katmanı Oluşturma

    Veri doğrulama orta katmanı, uygulamanızın farklı bölümlerinde gerektiği gibi veri girişi yapıldığını doğrulamak için kullanılabilir. Bu yöntem, her bir sorguda veri doğrulama kodu yazmak yerine, tek bir yerde oluşturarak tüm uygulama boyunca kullanılabilir hale getirir.

    Bu orta katman, veri doğrulama işlemlerini ele alırken, gerektiğinde doğru bir hatayı yakalama ve çıktı verme mekanizmasını da içerir. Böylece hatalı bir girişte, kullanıcıya anında bir uyarı gösterilebilir.

    Veri doğrulama orta katmanı oluşturmak için öncelikle, doğrulama kodlarını bir dosyaya toplamanız gerekir. Sonra, uygulamanızda kullanılacak olan tüm çıkışları kontrol etmek için bir ortak işlev ekleyin. Bu işlev, veri doğrulama kodlarını almalı ve hataların nasıl ele alınacağını belirlemelidir.

    Ayrıca, bu işlevin, özelleştirmek istediğiniz herhangi bir doğrulama kurallarınızı da kabul etmesi gerekir. Böylece gerektiği gibi özelleştirebilir, ancak doğrulama kodunuzu değiştirmek zorunda kalmazsınız.

    Veri doğrulama orta katmanı oluşturmanın faydaları arasında tekrarlayan kod yazımını önlemek, kodu daha okunaklı hale getirmek ve uygulamanın güvenliğini artırmak yer alır. Doğru bir şekilde oluşturulan orta katman, uygulamanızda veri doğrulamayı merkezi bir hale getirerek daha kolay bir yönetim sağlar.

    Sonuç olarak, Node.js ile basit veri doğrulama örnekleri hakkında konuştuğumuz bu makalede, veri doğrulamanın nasıl yapılabileceği ve orta katman kullanarak uygulamalarımızda nasıl kullanılabileceği anlatıldı. Veri doğrulama orta katmanını kullanarak, daha önce hiç olmadığı kadar güvenli bir uygulama yazabilirsiniz.