Merhaba,
Bu içeriğimizde; NoSQL temelli veritabanı olan MongoDB üzerinde Node.js ile veritabanı işlemleri icra ederken kullandığımız şemalarda validasyon işlemlerinin nasıl uygulanabileceğini inceliyor olacağız.
Hiç vakit kaybetmeden aşağıdaki modeli ele alırsak;
const mongoose = require("mongoose");
module.exports = mongoose.model("Employees", new mongoose.Schem a({
_id: Number,
name: {
type: String,
minlength: 4, //Minumum karakter sayısı,
maxlength: 15, //Maximum karakter sayısı
required: true //Bu alan boş geçilemez
}
}));
görüldüğü üzere “name” alanının boş geçilemeyeceğiyle birlikte minimum ve maximum değerleri belirtilmiş bulunmaktadır.
Gördüğünüz üzere validasyonlardan herhangi birine takınıldığı zaman yukarıdaki gibi doğrulama uyarısı ile karşılaşmaktayız. Eğer ki uyarıyı anlamlı mesaj haline getirmek istiyorsanız aşağıdaki gibi çalışma gerçekleştirmeniz yeterlidir.
const mongoose = require("mongoose");
module.exports = mongoose.model("Employees", new mongoose.Schem a({
_id: Number,
name: String,
surName: {
type: String,
maxlength: [20, "'{PATH}' alanına verilen değer '{VALUE}' en fazla '{MAXLENGTH}' karakter alabilir."],
minlength: [4, "'{PATH}' alanına verilen değer '{VALUE}' en fazla '{MINLENGTH}' karakter alabilir."],
required: [true, "'{PATH}' alanı boş geçilemez."]
}
}));
Dikkat ederseniz validasyona değer olarak atanan dizi içerisinde ilk eleman validasyon değerini tanımlarken, ikincisi ilgili validasyona takılındığı zaman verilecek mesajı ifade etmektedir. Burada {PATH}, {VALUE}, {MAXLENGTH} ve {MINLENGTH} anahtar sözcükleri mevcuttur. Bu keywordlerin ne işe yaradığını sırasıyla ele alırsak eğer;
-
{PATH}
Doğrulamadan geçemeyen alanın adını getirir. -
{VALUE}
Doğrulamadan geçemeyen alana verilen değeri getirir. -
{MAXLENGTH}
Maximum karakter sınırını getirir. -
{MINLENGTH}
Minimum karakter sınırını getirir.
Sayısal tipteki alanlarda ise aşağıdaki gibi validasyon uygulanabilmektedir;
const mongoose = require("mongoose");
module.exports = mongoose.model("Employees", new mongoose.Schem a({
_id: Number,
name: String,
surName: String,
age: {
type: Number,
min: 5, //Minumum değer
max: 15 //Maximum değer
}
}));
ya da
const mongoose = require("mongoose");
module.exports = mongoose.model("Employees", new mongoose.Schem a({
_id: Number,
name: String,
surName: String,
age: {
type: Number,
min: [5, "'{PATH}' alanının minumum değeri {MIN} olabilir."], //Minumum değer
max: [15, "'{PATH}' alanının maximum değeri {MAX} olabilir."] //Maximum değer
}
}));
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…
