ExpressJS ile MVC nasıl yapılır

Web Teknolojileri  Aralık 5, 2017

Merhaba arkadaşlar. Bu yazımda sizlere NodeJs in en bilinen frameworklerinden ExpressJS ile MVC standartlarında web site yapma hakkında temel bilgiler vereceğim.

Konuyu şöyle özetleyecek olursak, ExpressJS kurulumu yapıp ardından html template engine değiştireceğiz. Ardından ise controller ve model sınıflarımızı oluşturarak MVC yapısını tamamlamış olacağız. Bu arada illa da MVC kullanmak zorunda değilsiniz. Ancak işlerin bir yerden sonra sarpa sarmasını istemiyorsanız en başından bu şekilde başlamanın faydası var.

Gereksinimler;

NodeJs uygulaması http://nodejs.org
Editör (ben vscode tercih ediyorum) http://www.visualstudio.com

ExpressJS kurulumu

Bu aşamada bilgisayarınızda bulunan cmd komut yöneticisini kullanmanız yeterli olacaktır. Ben vscode un integrated PowerShell ini kullanacağım ama cmd ile aynı işlemleri yapacağız. Bu arada cmd nin ne olduğunu söylememe gerek yoktur umarım çalıştıra cmd yazın yeter.

Komut 1: ExpressJS nin bir kopyasını pc mizdeki global bir alana indirmek

npm install -g express-generator

2017-12-05 04_30_27-expressmvc - Visual Studio Code

Bu işlemi yaptıktan sonra ekranda garip gurup yazılar çıkacak ve hiç birşey olmayacaktır. Çünkü henüz expressi indirdik.

Komut 2: ExpressJS yi dizinimize kurmak

express

2017-12-05 04_34_41-expressmvc - Visual Studio Code

Bu kadar mı? Evet bu işlem ile artık express dizininize kopyalandı. Ancak bu şekilde çalışmayacaktır. Bağımlılık dediğimiz projedeki tüm kütüphanelerin indirilmesi gerekir. Tabi bu işlemden önce swig ile view template olayına gireceğiz. ExpressJS kafadan Jade adını verdiğimiz html ile alakası olmayan bir template engine ile gelir. Aslında çok az kod yazarak html yapmayı hedefleyen bu template yöntemi işimize gelmemekte. Neden? Çünkü bir yerlerden bulduğumuz html kodlarını copy-paste yapmadan çalışanını Allah için görmedim 🙂

Bu yüzden package.json dosyamızı açıp jade yazan yerdeki değerleri swig ile değiştiriyoruz. Bu arada swig in şu an ki son versiyonu 2.0.2 imiş nerden öğrendik tabiki npmjs.com da ki arama kutucuğuna swig yazarak gelen ilk sonuca girip sağ taraftaki bilgilerden. Siz daha sonra tekrar kontrol edin derim. Hemen ekleyelim.

2017-12-05 04_50_49-package.json - expressmvc - Visual Studio Code

 

Burada ki satırları karşılaşırırsanız swig yazan yerde sizde jade yazması gerekiyor. Ben swig ekleyip versiyonu ~1.4.1 yaptım. Bu başındaki şedde nedir derseniz o da bundan aşağısı kurtarmaz anlamına geliyor 🙂

Komut 3: Bağımlılıkları indirme

npm install

2017-12-05 04_45_39-package.json - expressmvc - Visual Studio Code

Evet yazılar çıktı bişiler bişiler derken kurulum tamamlandı. Ancak hala swig için işimiz bitmedi. Bunu sisteme tanıtmak gerek. Öncelikle eski template girdisini seçip sileceğiz.

2017-12-05 04_54_56-● app.js - expressmvc - Visual Studio Code

Şimdide gelelim swig yapılandırma koduna. Buraya aşağıda ki gibi şu kodları eklemelisiniz.

2017-12-05 05_00_52-app.js - expressmvc - Visual Studio Code

Bu kodun detayına inmeyeceğim. Artık projemizi çalıştırıp bakabiliriz.

Komut 4: Başlatalım

npm start

Bişeyler yazıp duracak, sakın pencereyi çarpıdan kapatmayın server durur. Nodejs sunucusu local de böyle komut isteminden çalışmaktadır. Hemen localhost:3000 yapıp bakalım.

2017-12-05 05_06_03-Ayarlar

Ne oldu? Tabi ki view ler jade den kalmaydı. Hemen swig ile güncelleyelim. Burada kod düzenlemelerini göstermeyeceğim projenin github adresinden indirebilir swig in npm üzerindeki dökümanlarından konuyu öğrenebilirsiniz.

Şimdi geçelim işin aslına. Öncelikle mevcut routingi değiştirmeyeceğim bir isim telefon listesi örneği yaparak konuyu anlatmaya çalışacağım.

İlk olarak routing imizi tanıtalım.

2017-12-05 05_27_26-app.js - expressmvc - Visual Studio Code

Burada standart routing ekledik. kisiler requesti artık routes klasöründeki kisiler.js dosyasına gönderilecek. Hemen kisiler.js dosyasını oluşturalım.

2017-12-05 05_30_42-kisiler.js - expressmvc - Visual Studio Code

Burada dikkatinizi çekecek olur ise controller adında bir nesnemiz var. Bu bir üst dizindeki controllers klasöründeki kisiler.js dosyasını belirtiyor. Ardından router.get ile /kisiler/ isteğini controller altında ki index fonksiyonuna gönderdiğimizi belirtiyoruz.

Hemen controllers klasörünü oluşturup altına kisiler.js dosyamızı oluşturarak controllerimizi de yapalım.

2017-12-05 05_35_43-kisiler.js - expressmvc - Visual Studio Code

Burada da views altında kisiler klasöründe ki index.html dosyasını çağıracağımızı söylüyoruz. Hadi onu da oluşturalım.

2017-12-05 05_38_49-index.html - expressmvc - Visual Studio Code

Şimdilik dosyamızın içeriği bu şekilde. Çalıştırırsanız eğer karşınıza başlıktan oluşan bir sayfa gelecektir.

2017-12-05 05_40_51-Ayarlar

Gelelim modelimize. Model için ana dizine models adında bir klasör açıp kisiler.js adında bir model dosyası oluşturacağım. Burada ad ve tel alanları olan basit bir liste olacak. Siz mongo vs bağlantınızı burada yürütmelisiniz.

2017-12-05 05_44_32-kisiler.js - expressmvc - Visual Studio Code

Modelimizde ki veriler bu şekilde. Bunu şimdi controller tarafında bağlayalım.

2017-12-05 05_46_43-kisiler.js - expressmvc - Visual Studio Code

Controller dosyamıza modeli tanıttık ve değişkenimizi view a gönderdik. View tarafında da şu düzenlemeyi yapacağız.

2017-12-05 05_49_30-index.html - expressmvc - Visual Studio Code

View de bir for oluşturarak kisileri kisi nesnesine dağıtıp gördüğünüz üzere listelettik. Burada modelin içinde bulunan değişkenlerin view tarafında kök değişkenlere dönüştüğünü unutmayın. Çalıştırıp kontrol ediyoruz.

2017-12-05 05_51_21-Ayarlar

Bu aşamadan sonra yapacağınız işlemler, routing de kurgulayacağınız add edit gibi sayfaları ve hatta get yöntemi dışında post put delete gibi yöntemleri de bir şekilde controller tarafına geçirerek modelinize aktarımını sağlamak olacaktır. Modeliniz şu an için düz json mantığında da olsa mongodb vs kullanmanız durumunda size gelecek olan post vs datalarını da json olarak modele iletmeniz gerekecektir.

İşlemlerin bu aşaması konumuzun dışında, bunu expressjs yi araştırarak öğrenebilirsiniz. Ancak MVC yapısını sağlam oturtmak çok mühim, böylece sistem bir yerden sonra dallanıp spagettiye dönmez.

Projenin git adresi

https://github.com/halityurttas/expressjs-mvc

Bir sonraki yazıda görüşünceye dek esenlikle kalın

Bu yazı 875 defa görüntülendi

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Yazar Hakkında

15 yıllık çalışma hayatında birçok proje geliştirmiş binlerce projeyi inceleme fırsatı bulmuş yazılım aşığıdır. İşini hobi olarak gören yazarımız iş hayatını profesyonelce zevkle sürdürmektedir.

Son Eklenenler