Sequelize ORM Validation ve Custom Validator
Sequelize ORM Validation ve Custom Validator
Sequelize ORM Nedir?
Sequelize, Node.js ekosisteminde yaygın olarak kullanılan, güçlü ve esnek bir ORM (Object-Relational Mapping) kütüphanesidir. Geliştiricilerin veritabanı işlemlerini kolaylaştırmak ve kodlarını daha yönetilebilir hale getirmek için sıkça tercih edilir. Sequelize ORM, MySQL, PostgreSQL, SQLite ve MSSQL gibi popüler veritabanlarıyla çalışabilir ve modeller, ilişkiler, sorgular ve validasyon özelliklerini kapsamlı biçimde destekler.
Validation (Doğrulama) Özellikleri
Sequelize ORM, model seviyesinde veri doğrulamayı kolayca gerçekleştirmenize imkan tanır. Doğrulama (validation), yanlış veya eksik verilerin veritabanına kaydedilmesini engeller. En sık kullanılan validation türleri; zorunlu alanlar (allowNull), uzunluk (len), e-mail formatı, benzersizlik ve daha fazlasını içerir. Sequelize'ın validation tanımları, modelinizi oluştururken yapılır ve örneğin şöyle kullanılır:
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');
const User = sequelize.define('User', {
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: true,
notNull: { msg: 'E-posta zorunludur' }
}
},
username: {
type: DataTypes.STRING,
validate: {
len: [4, 20]
}
}
});
Custom Validator (Özel Doğrulama) Yazımı
Bazen standart validatorlar ihtiyacı karşılamaz ve özel kurallara göre doğrulama gereklidir. "Sequelize ORM Validation ve Custom Validator" konusunun kritik noktası, kendi özel validatörlerinizi nasıl yazabileceğinizdir. validate nesnesi içinde anahtar olarak fonksiyon yazarak, istediğiniz kadar custom validator tanımlayabilirsiniz. Hata ürününde throw new Error() kullanmanız gerekir:
const Product = sequelize.define('Product', {
name: {
type: DataTypes.STRING,
allowNull: false,
validate: {
notEmpty: true,
isTitleCase(value) {
if (value && value[0] !== value[0].toUpperCase()) {
throw new Error('Ürün ismi büyük harfle başlamalıdır.');
}
}
}
},
price: {
type: DataTypes.FLOAT,
validate: {
min: 0,
isPositive(value) {
if (value <= 0) {
throw new Error('Fiyat sıfırdan büyük olmalıdır');
}
}
}
}
});
Custom Validator Kullanımında Dikkat Edilmesi Gerekenler
Custom validator yazarken, fonksiyonun this bağlamının ilgili model örneği olacağına ve senkron/async fonksiyonların doğru biçimde kullanılmasına dikkat edilmelidir. "Sequelize ORM Validation ve Custom Validator" sürecinde hata mesajlarınızı açıklayıcı seçmeniz, uygulamanızın sürdürülebilirliğini artırır.
Sonuç
Sequelize ORM Validation ve Custom Validator mekanizmaları, uygulamalarınızda veri bütünlüğünü ve güvenliğini artıran önemli araçlardır. Standart validatorlar çoğu ihtiyacı karşılamasına rağmen, projenizin özgün gereksinimleri için custom validator yazarak daha esnek ve güvenilir veri yapıları oluşturabilirsiniz. Sequelize ile geliştirdiğiniz projelerde validation konusuna gereken önemi vermek, uzun vadede bakım kolaylığı ve veri kalitesi sağlar.

Yorum Gönder