"Enter"a basıp içeriğe geçin

NodeJS + Express + MongoDB REST API Rehberi Bölüm 2

Herkese tekrardan merhaba. Bu makale serisinde önceki makalede başlamış olduğumuz Node projesinin devamını getireceğiz.

app.get ile rota vermeyi anlamıştık. Şimdi projemizin yapısını genişletelim ve projemizin içine routes adında bir klasör oluşturalım. Ardından ise içerisine routes.js adında bir dosya oluşturalım. Bütün rotalarımızı buradan yapacağız. Amacımız server.js dosyasını kodlarla doldurmamak. Server’da sadece tanımlamaları yapacağız.

Routes klasörü altına routes.js dosyasını oluşturalım ve içerisine gerekli tanımlamaları yapalım.

Öncelikle express sınıfındaki Router’ı tanımlayalım.

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

Ardından server dosyasında yaptığımız index tanımlamasını kesip buraya yapıştıralım. Artık app.get yerine router.get olarak tanımlama yapacağız.

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

router.get('/', (req, res) => {
    res.send('Hello, index!!!');
});

Daha sonrasında module.exports ile bu router’ımıza diğer dosyalardan erişilebilir hale getirelim.

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

router.get('/', (req, res) => {
    res.send('Hello, index!!!');
});

module.exports = router;

Daha sonrasında server dosyamıza tekrar dönelim ve bu router’ımızı server’da tanımlayalım. Ardından tanımladığımız router’ı uygulamamıza dahil edelim.

Fakat burada tanımlamada ufak bir değişiklik yapacağız. Artık tanımlayacağımız rotalara /api yolundan erişeceğiz ve routes’ın tanımlamasını app.use içerisinde yapacağız. Amacımız düzenli, sağlam bir yapı oluşturmak ve fazla kod satırlarından kaçmak. Az kod, çok iş!

const express = require('express');
const app = express();

app.use('/api', require('./routes/routes'));

app.set('port', process.env.PORT || 5000);

app.listen(app.get('port'), () => {
    console.log(`Server is listening on http://localhost:${app.get('port')}`);
});

Projemizi tekrardan çalıştırırsak localhost:3000/api/ rotasının sorunsuz şekilde çalıştığını göreceğiz.

Şimdi ise tanımlayacağımız rotalardaki yapacağımız işlemler için ayrı bir controller sınıfı oluşturalım. Rotaları routes.js’de, çalışacak olan fonksiyonları ise controller.js altında tanımlayalım.

Öncelikle projemize controllers adında bir klasör oluşturalım ve içerisine de controller.js adında bir dosya oluşturalım.

Projenin bu kısmında ise asenkron programlamaya başlayacağız. Asenkron programlama hakkında detaylı makaleye buradan ulaşabilirsiniz.

Dosyamızı oluşturduktan sonra içerisine şu şekilde ekleme yapalım:

exports.getIndex = async (req, res) => {
    res.send('Hello, index!!!');
};

Exports ifadesi ile getIndex fonksiyonunun dışarıdan erişilebilir olduğunu tanımladık ve artık asenkron programlama yaptığımız için bu fonksiyonumuzu async olarak tanımladık. Routes’ta yaptığımız işlemi artık burada yapıyor olacağız.

Şimdi routes dosyamıza geri dönelim ve oluşturduğumuz bu controller’ın tanımlamasını yapalım.

const router = require('express').Router();
const controller = require('../controllers/controller');

router.get('/', controller.getIndex);

module.exports = router;

Controller dosyamızı çağırdık ve router.get içerisinde controller.getIndex ile getIndex fonksiyonumuzu tanımladık. Artık projemizde yapacağımız rotalaları burada tanımlayacağız, yapacağımız işlemleri ise controller’a yazacağız.

Şimdi farklı bir rota verelim.

const router = require('express').Router();
const controller = require('../controllers/controller');

router.get('/', controller.getIndex);

router.get('/kullanici', controller.getUser);

module.exports = router;

Eklediğimiz yeni /kullanici yolunun fonksiyonunu controller altında tanımlayalım.

exports.getIndex = async (req, res) => {
    res.send('Hello, index!!!');
};

exports.getUser = async (req, res) => {
    res.send('Merhaba, ben superuser!');
}

Tanımladıktan sonra artık localhost:3000/api/kullanici adresinde “Merhaba, ben superuser!” yazısını görebileceğiz fakat artık bu kontrolleri tarayıcıdan yapmak yerine bölüm 1’de ilk başta belirttiğim Postman uygulamasını kullanalım. Bundan sonra Postman’i kullanacağız.

Postman’i açtıktan sonra GET methodunu seçip url kısmına http://localhost:5000/api/kullanici yazıp send dersek aşağıda sunucunun cevabını görebileceğiz.

Postman ile istek atmayı da öğrenmiş olduk. Sonraki makalede MongoDB bağlantımızı yapalım ve Mongo ile veri alışverişi yapalım.

Bu bölümün kaynak kodları.

<- Önceki bölüm

-> Sonraki bölüm

İlk Yorumu Siz Yapın

Bir cevap yazın

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