Kodlib - Blog
  • React Native
  • Php
  • Javascript
  • Unity
No Result
View All Result
Kodlib - Blog
  • React Native
  • Php
  • Javascript
  • Unity
No Result
View All Result
Kodliblog
No Result
View All Result

Nodejs Joi Kullanımı ve Örnekleri

Enes Can Güneş by Enes Can Güneş
Ocak 24, 2021
in nodejs

Herhangi bir uygulama için bir REST API hazırladığınızı düşünün. Hem client hem server tarafında kontrol edilmesi gereken çok fazla parametre olacaktır. Örneğin email kontrolü client üzerinde basit bir şekilde kontrol edildiğinde çeşitli yollarla bu manüpile edilebilir durumda olabiliyor. Bu yüzden verileri eklediğimiz, güncellediğimiz son “endpoint” olan api’da bunları kontrol etmek çok yerinde olacaktır.

Joi kullanımı
Joi kullanımı

Joi tam bu devrede işimize en çok yarayacak paketlerden birisi. Kontrolün yanı sıra bazı metotlarla karmaşıklığı önleyecek yöntemleri içerir. Mesela bir kullanıcı adı sisteminiz var. Kimi kullanıcılar kUllaNIcı adını bu tarz yazıyor olabilir. Siz küçük harflerle göstermek istiyorsanız her seferine toLowerCase kullanmak yerine en baştan bu veriyi bu şekilde alıp kaydetmek daha mantıklı olacaktır.

O zaman bir express js uygulaması üzerinden Joi kullanımı nasıl oluyor bir kaç örnek yapalım. Daha önce express js kullanımından bahsettiğim şu yazıma da göz atabilirsiniz. Ben joi’i bilmeyenler için çok temelden anlatacağım detayları için mutlaka kendi dökümanına göz atmalısınız.

npm i joi

Oldukça hafif bir paket olan joi paketimizi kuralım. Şimdi api’da kullandığımız /register için email ve password parametlerine ihtiyacımız var. Ve şifre için belirlediğimiz en az karakter sayısı 6 en fazla girilecek karakter sayısı 16 olsun. Muhtemelen önce email ve password var mı yok mu daha sonra password en az 6 en fazla 16 karakterden mi oluşuyor diye bir kaç if else içerisine gireceğiz ve burada kontrol etmemiz gereken sadece 2 parametre var.

Joi Kullanımı Örnek Şema

Bu işleri çok sadeleştirecek olan kontrol şemamızı oluşturalım.

const Joi = require('joi'); const registerSchema = Joi.object({ email: Joi.string().email().required(), password: Joi.string().min(6).max(16).required() });

Burada oluşturduğumuz şemada joi’ye email parametremizin bir email türünde olması gerektiğini ve bu alanın mutlaka dolu olarak geldiğinden emin ol diyoruz. Kullanıcının boş geçmesini istemediğiniz alanlarda required() kullanmamız gerek. Burada email için kendi dökümanında daha fazla kontroller mevcut. Örneğin sadece com, net ya da sadece edu.tr uzantılı mailleri kabul et diye çeşitli ayarlamalar yapabiliriz.

Joi Şema Kontrolü

app.post('/register', async (req, res) => { try { const result = await registerSchema.validateAsync(req.body); res.json(result) } catch (error) { res.json(error.message) } });

Yukarıda tanımladığımız registerSchema’ı asenkron ya da senkron olarak doğrulama işlemine tabi tutabiliriz. Eğer bir hata varsa catch kısmında bunu yakalayacağız eğer bir hata yoksa result objesi bize email ve password içeren bir obje olarak dönecektir.

Joi lowercase

Yazıya girişte bahsetmiştim kullanıcı email gibi zaten benzersiz olacak alanlarda emailin bazı harflerini büyük yazabiliyor bu işleyişi bozmaz ama görünüm açısından çok estetik durmayacaktır. Burada lowercase kullanarak result içerisinde bize gelecek olan email’i zaten toLowerCase uygulanmış biçimde bize gelecektir.

const registerSchema = Joi.object({ email: Joi.string().email().lowercase().required(), password: Joi.string().min(6).max(16).required() });

Input: email: “eXAMPle@example.com”
Output: email: “example@example.com”

Joi kullanımı aslında işlerin karmaşıklığını azaltmada çok fazla işe yaramaktadır. Tabi validasyon temel görevi.
Sorularınız olursa yorum kısmından yazabilirsiniz. Hepinize hayırlı günler dilerim, kolay gelsin.

ShareTweetShareSend
Enes Can Güneş

Enes Can Güneş

Yazılım Mühendisliği öğrencisi. Yazılım ile problem çözmekle uğraşan bir yazılım geliştirici. Javascript - Nodejs - Php

Related Posts

react-firebase-dosya-yükleme
nodejs

React Js Firebase Dosya Yükleme

React js Firebase dosya yükleme aslında oldukça basit. Bunun için firebase konusunda biraz bilgi sahibi olmak gerekiyor. En temelde firebase...

Aralık 25, 2020
20
nodejs express kullanımı
expressjs

Nodejs Express Kullanımı

Kısaca expressjs nedir ondan bahsedeyim daha sonra adım adım nodejs express kullanımı konumuza geçelim. Expressjs Nodejs tabanlı bir frameworkdür. Hızlı...

Aralık 4, 2020
9
Nodejs terminal uygulaması
nodejs

NodeJs Terminal Uygulaması Nasıl Yapılır?

CLI yani command line interface uygulamasını nodejs ile yapmak çok kolay olmaktadır. Nodejs terminal uygulaması yapımına geçmeden önce kısaca cli...

Temmuz 26, 2020
96

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Önerilenler

laravel firebse ssl hatası

Laravel Firebase SSL certificate problem Hatası Ve Çözümü

Nisan 5, 2020
39
Joi kullanımı

Nodejs Joi Kullanımı ve Örnekleri

Ocak 24, 2021
1
react-firebase-dosya-yükleme

React Js Firebase Dosya Yükleme

Aralık 25, 2020
20
Laravel Cookie Kullanımı

Laravel Cookie Kullanımı (Cookie::queue ve Cookie::get)

Nisan 2, 2020
444

Kategoriler

  • expressjs
  • javascript
  • laravel
  • nodejs
  • php
  • python
  • react
  • react-native
  • Unity
  • web-progralama

Kodlib Hakkında

Kodlib Yazılım Hakkında bloglar içerir. Yazılım süreçleri, mühendislik ve bu süreçte yaşanan deneyimleri blog şeklinde sunar.
#EvdeKal
Copyright 2020 @kodlibcom

Kategoriler

  • expressjs
  • javascript
  • laravel
  • nodejs
  • php
  • python
  • react
  • react-native
  • Unity
  • web-progralama

Sosyal Medya

No Result
View All Result
  • React Native
  • Php
  • Javascript
  • Unity