Node.js - MongoDB'ye Mongoose İle Şema Oluşturma ve Kayıt Ekleme - Yazılım Mimarileri ve Tasarım Desenleri Üzerine

Node.js – MongoDB’ye Mongoose İle Şema Oluşturma ve Kayıt Ekleme

Merhaba,

Bir önceki Node.js – MongoDB’ye Mongoose Modülü İle Bağlanma başlıklı yazımda Mongoose modülü aracılığıyla Node.js’de MongoDB’ye nasıl bağlanılacağını ele almıştık. Bu içeriğimizde ise yine Mongoose modülü üzerinden veritabanımızda şema oluşturmayı ve oluşturduğumuz şemaya kayıt eklemeyi inceleyeceğiz.

İçeriğimizde yapacağımız örneklendirmeye eşlik etmesi için ilk olarak bir veritabanı oluşturmamız gerekmektedir ve ben nacizane “CompanyDB” ismini tercih ettiğim bir veritabanı oluşturuyorum.
Node.js - MongoDB'ye Mongoose İle Şema Oluşturma ve Kayıt Ekleme
Oluşturulan veritabanına göz atarsanız eğer içerisinde kendisiyle aynı isimde bulunan bir collection dışında başka bir collection bulunmamaktadır. Bizler bu makalede ele alacağımız yöntemle Node.js ile programatik olarak kendi collectionlarımızı direkt olarak oluşturacak ve bu collectionlara veriler ekleyeceğiz.

Adım 1

Model Oluşturma
Projemizdeki modelleri ben genellikle projenin ana dizininde “models” isimli klasörde tutmayı tercih ediyorum. “Models” klasörü altına yine ismini nacizane belirlediğim “employee.js” adında bir model dosyası oluşturuyorum.

const mongoose = require("mongoose");

module.exports = mongoose.model("Employees", new mongoose.Schem a({
    name: String,
    surName: String,
    age: Number,
    married: Boolean
}));

Yukarıdaki kod bloğunu incelerseniz eğer bir modelin nasıl oluşturulduğunu görmektesiniz. Dikkat ederseniz require edilen Mongoose modülü üzerinden “model” fonksiyonu geriye exports edilmektedir. Fonksiyonun ilk parametresi bu modelin veritabanında hangi collectiona ait olduğu bilgisini tutmaktadır. İkinci parametre ise Mongoose modülünde bulunan Schema sınıfında bir nesne almaktadır. Haliyle görüldüğü üzere Schema nesnesi içerisinde ilgili modelimiz tanımlamış bulunmaktadır. Bir başka deyişle modelimizin alanları veri tipleriyle birlikte tanımlanmıştır.

Bizler makalemizin başlarında “CompanyDB” isminde boş bir veritabanı oluşturmuştuk. Dolayısıyla içerisinde “Employees” isminde bir collection olmadığını biliyoruz. Yukarıda oluşturmuş olduğumuz modeli birazdan gidip veritabanına ilgili isimde bir collectionı manuel olarak tanımlamaya gerek kalmaksızın ekleyebileceğiz ve bu işlem neticesinde “Employees” collectionı otomatik eklenmiş olacaktır. Bu işlemi Mongoose modülü MongoDB ile olan derin uyumluluğundan otomatik olarak gerçekleştirecektir.

Yukarıda yapmış olduğumuz model tanımlamasını aşağıdaki gibide yapabileceğimizi bilmenizi isterim.

const mongoose = require("mongoose");

const model = new mongoose.Schem a({
    name: String,
    surName: String,
    age: Number,
    married: Boolean
});

module.exports = mongoose.model("Employees", model);

Bu farklı varyasyon tanımlamasından sonra ikinci adıma geçebiliriz.

Adım 2

Modeli Kullanarak Instance Oluşturma ve Veritabanına Kayıt Etme
Şimdi tanımladığımızı modeli kullanarak bir instance oluşturacağız ve bu instance’ı veritabanına gönderip kayıt işlemini gerçekleştireceğiz. Tabi bu işlemi route sınıflarımızdan herhangi birinde gerçekleştireceğiz. Tabi route yapılanmalarını ayrı sınıflarda oluşturduysanız… Makalemizde route yapılanmalarını ayrı sınıflara alarak içeriği yersiz şişirmek istemediğimden dolayı tüm işlemi ana modülümüzde gerçekleştireceğim.

const express = require("express");
const app = express();
const mongoose = require("mongoose");

//*  Veritabanı Bağlantısı Kuruluyor  */
mongoose.connect("mongodb://localhost/CompanyDB")
    .then(() => console.log("Veritabanı bağlantısı başarıyla sağlandı."))
    .catch((error) => console.log("Veritabanı bağlantısı sağlanırken beklenmeyen bir hatayla karşılaşıldı.", error.message));
//

//* Modül Require Ediliyor */
const Employee = require("./models/employee");
//

app.get("/", (request, response, next) => {

    //* Instance Oluşturuluyor */
    const instance1 = new Employee({
        name: "Gençay",
        surName: "Yıldız",
        age: 26,
        married: true
    });
    //

    //* Instance Veritabanına Gönderiliyor */
    instance1.save((error, data) => {
        if (error)
            console.log("Beklenmeyen bir hatayla karşılaşıldı.", error.message);

        response.json(data);
    });
    //
}).listen(5000);

Yukarıdaki kod bloğunu incelerseniz eğer “employee” modülümüzü require ediyoruz ve ardından route içerisinde ilgili modülden bir instance oluşturuyoruz. Tüm alanlara uygun değerleri girdikten sonra instance üzerinden “save” fonksiyonu ile ilgili nesne veritabanına gönderilmektedir ve ardından json olarak sayfaya response edilmektedir.
Node.js - MongoDB'ye Mongoose İle Şema Oluşturma ve Kayıt Ekleme
Sayfaya basılan json değer bizi yukarıdaki gibi karşılamaktadır. Hazır aklımızdayken veritabanımızada göz atarsak eğer;
Node.js - MongoDB'ye Mongoose İle Şema Oluşturma ve Kayıt Ekleme
Görüldüğü üzere “employees” collection’ı hiç elimizi sürmediğimiz halde otomatik oluşturulmuştur ve verimiz(document) içerisine eklenmiştir.

İlgilenenlerin faydalanması dileğiyle…

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 13 Ağustos 2018

    […] veri eklemeyi önceki Node.js – MongoDB’ye Mongoose İle Şema Oluşturma ve Kayıt Ekleme başlıklı yazımızda […]

Bir cevap yazın

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

*

Copy Protected by Chetan's WP-Copyprotect.