MongoDB – Global Promise Yapısı İle Kayıt İşlemi

Merhaba,

Önceki yazılarımdan Node.js – MongoDB CRUD İşlemleri başlıklı yazımda MongoDB veritabanına nasıl kayıt eklendiğini incelemiştik. İlgili makalede örneklendirilen kayıt yapısına istinaden daha düzgün ve pratik bir yapı sunan Global Promise yapısını kullanarak kayıt işleminin nasıl yapıldığını inceliyor olacağız.

İlk olarak normal kayıt işlemini inceleyelim.

const express = require("express");
const router = express.Router();

const employeeModel = require("../models/employee");

router.post("/postEmployee", (request, response, next) => {
    let employeeInstance = new employeeModel(request.body);
    employeeInstance.save((error, data) => {
        if (!error)
            response.json(data);
        else
            console.log("Kayıt işlemi gerçekleştirilirken beklenmeyen bir hatayla karşılaşıldı.");
    });
});

module.exports = router;

Yukarıdaki kod bloğunu incelerseniz eğer post edilen bir datanın normal şekilde veritabanına kaydedilmesini göreceksiniz. Aslında çokta okunabilirliği ve anlaşılabilirliği düşük bir kod olmasada biraz karışık gözüktüğü, tek bakışta ne iş yaptığının net anlaşılamadığı itiraf edilebilir.

Şimdi bu kayıt işlemini Global Promise yapısını kullanarak gerçekleştirelim.

Tabi bunu gerçekleştirebilmek için projede Global Promise tanımlamasının yapılması gerekmektedir. Dolayısıyla bu işlem için mongodb bağlantısını sağladığımız modüle gidip içerisinde aşağıdaki çalışmayı yapmamız gerekmektedir.

const mongoose = require("mongoose");

module.exports = () => {
    mongoose.connect("mongodb://localhost/companydb")
        .then(() => console.log("Veritabanı bağlantısı başarılı."))
        .catch(error => console.log("Veritabanı bağlantısı hata alındı."));

    mongoose.Promise = global.Promise;
};

Gördüğünüz üzere yukarıdaki kod içerisinde olduğu gibi mongoose yapımızın “Promise” özelliği “global.Promise” olarak ayarlanmış bulunmaktadır.

Tabi bu modül dahil diğer modül ve yapıların inşasını ana modül olan “app.js” dosyasında aşağıdaki gibi yapmayı unutmuyoruz.

const express = require("express");
const app = express();
const bodyParser = require("body-parser");

require("./db/db")();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

const employeeRouter = require("./routers/employeeRouter");
app.use("/employee", employeeRouter);

app.listen(5000, () => console.log("Yayın başladı."));

Velhasıl, artık Global Promise özelliği devreye girdiğine göre kayıt işlemini aşağıdaki gibi daha okunaklı ve pratik bir şekilde gerçekleştirebilmekteyiz.

const express = require("express");
const router = express.Router();

const employeeModel = require("../models/employee");

router.post("/postEmployee", (request, response, next) => {
    let employeeInstance = new employeeModel(request.body);
    employeeInstance.save()
        .then(data => response.json(data))
        .catch(error => console.log("Kayıt işlemi gerçekleştirilirken beklenmeyen bir hatayla karşılaşıldı."));
});

module.exports = router;

Görüldüğü üzere direkt “save” fonksiyonu üzerinden “then” – “catch” Promise yapısını tetiklemiş olduk. Örneğimizi Postman uygulamasıyla test ettiğimiz zamanda aşağıdaki ekran görüntüsünde olan neticeyle karşılaşmaktayız.

MongoDB - Global Promise Yapısı İle Kayıt İşlemi

İşte bu şekilde görsel açıdan daha okunaklı, pratik ve teknik açıdan daha kullanışlı kodumuzu yazmış olduk.

İlgilenenlerin faydalanması dileğiyle…

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

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

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

*

Copy Protected by Chetan's WP-Copyprotect.