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

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

Herkese merhabalar. Bu makale serisinde NodeJS+Express+MongoDB ile basit bir REST API oluşturacağız.

Her şeyden önce, bilgisayarımızda olması gerekenler:

Ayrıca, HTTP methodlarını daha iyi anlamak için bu makaledeki GET, POST, PUT, DELETE methodlarını gözden geçirmeniz ve ne işe yaradıklarını anlamanız makale süresince yararınıza olacaktır.

Bu makale serisi boyunca Yarn paket yöneticisini kullanacağım. NPM de kullanabilirsiniz. İkisinin arasındaki farklara şuradan bakabilirsiniz.

Artık başlayalım. Boş bir klasör oluşturalım ve terminal ile bu klasöre erişelim. Ardından ise:

yarn init

Bu komut bize yeni bir Node projesi initialize etmemize yarıyor. Bize proje hakkında birkaç soru soracak. Dilediğiniz gibi bilgilerinizi girebilirsiniz. Bununla uğraşmak istemiyorum, hepsine evet desin derseniz de:

yarn init -y

Sonunda bize bir package.json dosyası verecek. Bu json dosyası bizim projemizin bütün bilgilerinin olduğu dosya.

İçeriğinde ise şimdilik projenin adı, versiyonu, ana .js dosyasının adı, git depo linki, yazar ve lisans bilgileri mevcut.

Main olarak index.js seçili olur fakat ben bunu server.js olarak değiştrieceğim. İsterseniz main.js, app.js olarak da değiştirebilirsiniz. Değişikliği package.json içerisinde “main”: “server.js” olarak uygulayabilirsiniz.

Şimdi bu makale serisinde ihtiyacımız olan bütün paketleri projemize dahil edelim. Bunlar sırasıyla:

yarn add express nodemon mongoose body-parser -D

Kurulumu yaptıktan sonra bize ek olarak yarn.lock adında bir dosya verdi. Bu dosyada paketlerin ihtiyacı olan tüm bağımlılıkların bilgileri yer alıyor.

Ayrıca package.json dosyasına tekrar dönüp bakarsak eğer “devDependencies” altında paketlerimizin listelendiğini görebiliriz.

Şimdi öncelikle express’i projemize dahil edelim.

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

App değişkeni express’in bütün özelliklerini taşıyor olacak. Projemizi app değişkeni ile inşa edeceğiz.

Ardından sunucumuzun çalışacağı port numarasını tanımlayalım. Port tanımlamasını app.set ile yapacağız ve tanımladığımız port’u getirmek için ise app.get fonksiyonunu kullanacağız.

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

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

Şimdi express ile basit bir route tanımlaması yapalım.

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

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

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

/ yoluna bir GET metodu yazdık ve bu adrese atılan her isteğe cevap olarak “Hello, index!!!” yazısını dönderecek. İçerideki fonksiyonun parametreleri olan req, res ise Request, Response yani istek ve yanıt olarak kısaltılmış. Gelen istekleri req değişkeniyle, geri döneceğimiz cevapları ise res ile yapacağız.

Şimdi sunucumuzu belirlediğimiz port numarasından dinlemesini sağlayalım.

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

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

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

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

app.listen ile verdiğimiz port numarası üzerinden iletişim kurabilebilmesini sağladık ve içerisine bir arrow function açarak terminal üzerinde projemizin çalışıp çalışmadığını görebilmek için bir yazı yazdırdık.

Şimdi projemizi ayağa kaldıralım. Bunun için package.json dosyasına gelerek bir başlangıç script’i yazmamız gerekiyor.

“main” in hemen altına aşağıdaki gibi bir ekleme yapalım:

{
  "name": "node-rest-tutorial",
  "version": "1.0.0",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js"
  },
  "repository": "https://github.com/furkanalptokac/node-rest-tutorial.git",
  "author": "Furkan Alp <furkanalptokac@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "body-parser": "^1.19.0",
    "dotenv": "^9.0.2",
    "express": "^4.17.1",
    "mongoose": "^5.12.10",
    "nodemon": "^2.0.7"
  }
}

Start ve Dev olarak iki adet çalıştırma şekli tanımladık. Index dosyamızı node ile çalıştırırsak eğer dosyada bir değişiklik yaptığımız zaman hot reload olmaz yani projeyi kapatıp tekrar açmamız gerekir. Nodemon paketi tam da burada devreye giriyor ve bize hot reload özelliği sunuyor. Geliştirme yaparken nodemon ile çalışacağız.

Gerekli eklemeyi yaptıktan sonra projemizi ayağa kaldıralım.

yarn dev

Evet, projemiz çalışıyor. Tarayıcıdan http://localhost:3000/ adresine gidersek eğer “Hello, index!!!” yazısını görebileceğiz.

Bu makale serisinin ilk bölümünde bir Node projesi oluşturduk, gerekli paketlerin kurulumlarını yaptık ve ilk projemizi ayağa kaldırdık. Bölüm 2’de yeni rotalar ekleyip bu rotalara Postman ile istekler atacağız.

Projenin kaynak kodlarına buradan ulaşabilir, sorularınızı makalelerin yorum kısmına veya en sağlıklı yol olan Issues kısmından iletebilirsiniz.

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

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