Node.js Express Kullanımı
Hepinize merhaba dostlarım 😊. Bu yazımda sizlere Node.js üzerinde express kullanımını göstererek gelen http isteklerini alma ve bunlara cevap verme işleminden bahsedeceğim.
Express işlemine genel olarak bakacak olursak dostlarım aslında PHP programlama dilindeki gibi bir server oluşturmaya ve bu server üzerindeki belirli bir portun dinlenerek client tarafından gelen istekleri karşılama ve bu isteklere cevap verilme işlemlerini bizim için hızlı bir şekilde gerçekleştiriyor. Kısaca PHP projelerinin JavaScript üzerinden gerçekleşirilmesi olarak diyebiliriz. Günümüzde gitgide popülerliği artan Node.js programlama dili üzerinde express modülüne artık geçelim sözü biraz fazla uzattık gibi geldi :).
Öncelikle bir klasör oluşturalım. Ben klasörümün adına node-js-express ismini verdim. Daha sonra CMD üzerinden bu klasör içerisine eriştikten sonra
npm init
komutunu yazıyorum ve enter enter diye diye projemi npm ile ilişkilendiriyorum (bu aşamada takılan dostlarım varsa buradan ulaşabilir). Projeyi npm ile ilişkilendirdikten sonra express modülümüzü kurmaya geçelim. Hemen projemizin kök klasöründe CMD yi açıp
npm install --save express@4.15.2
komutunu yazalım. Burada ben express modülünün genelde 4.15.2 olan versiyonunu kullanıyorum (socket.io işlemlerinde diğer sürümler hata vermişti o yüzden bu sürümü kullanıyorum). Bu modülümüzü kurduktan sonra kontrolümüzü yapalım gerçekten bu modül projemize eklenmişmi diye. Hemen kök dizin içerisindeki package.json dosyasını açalım.
{
"name": "js-express",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "MFS",
"license": "MIT",
"dependencies": {
"express": "^4.15.2"
}
}
Dosya içeriğini incelediğimiz zaman dependencies kısmında express modülünü ve versiyon numarasını görüyoruz. Yani işlemlerimiz sorunsuz bir şekilde tamamlanmış, modülümüz rahat bir şekilde kurulmuştur. Şimdi proje klasörümüz içerisinde bir index.js dosyası oluşturalım. Daha sonra
const express = require('express') // Modülümüzü dahil ettik
const app = express() // Modülümüzü çalıştırdık
şeklinde kodlarımızı yazalım. Burada projemiz içerisine kurduğumuz express modülümüzü dahil ettik ve bu modülü çalıştırıp app isimli bir değişkene aktardık. İşlemler buraya kadar tamam. Şimdi bizim http isteklerini almamız için (GET,POST,DELETE,PATCH vs) öncelikle bir port dinlemesi yapmamız lazım. Bunun için de index.js dosyamızın içerisine gelip en alt kısımda
// Port numarasını belirttik
app.listen(3000,function () {
console.log("3000 Portu Dinleniyor") // Port dinlendiğine dair mesaj
})
şeklinde kodumuzu yazdık. Hani yukarıda express modülünü çalıştırmıştık ya işte bu kısımda da çalışan express modülü üzerinden port dinlemesi işlemini yapıyoruz. Ek olarak belirtmek gerekirse 3000 olarak belirttiğim port numarası illa 3000 olacak diye bir kural yok 5000 de yazabilirsiniz 7000 de yazabilirsiniz size kalmış o :). Şimdi gelelim bu portumuz gerçekten dinleniyor mu test etmek için proje kök klasörümüzde terminalimizi açıp
node index.js
komutumuzu yazıyoruz. Daha sonra console kısmında bize verilen mesajı incelediğimizde
3000 Portu Dinleniyor
şeklinde bir çıktı olduğunu görüyoruz. Yani bu kısma kadar işlemlerimiz sorunsuz bir şekilde ilerliyor dostlar. Şimdi gelelim örnek 2 sayfa yapalım. Bunlardan birisi anasayfa olsun, diğeri ise hakkımda sayfası olsun. Hemen kodlama kısmına gelip
const express = require('express')
const app = express()
app.get('/',function (req,res) { // Anasayfa için karşılanacak istek
res.send("Anasayfa") // Gelen isteğe karşılık olarak bu cevabı ekrana gönder
})
app.get("/hakkimda",function (req,res){ // Hakkımda için karşılanacak istek
res.send("Hakkımda") // Gelen isteğe karşılık olarak bu cevabı ekrana gönder
})
app.listen(3000,function () {
console.log("3000 Portu Dinleniyor")
})
şeklinde kodlarımızı yazdık. Bu kısımda app.get() yazdığımızda get() fonksiyonu 2 adet parametre alıyor. Bu parametrelere bakacak olursak
- Birinci Parametre: Web browser üzerinden karşılanacak olan istek
- İkinci Parametre: Bu istek sonucu çalışacak olan callback fonksiyon. Bu fonksiyon da kendi içerisinde 2 adet parametre alır. Bunlara bakacak olursak
- Birinci Parametre: İstek (req) parametresi
- İkinci Parametre: Cevap (res) parametresi
şeklindedir. Şimdi kodlarımızın ufaktan ufaktan çalışmasını inceleyelim. Öncelikle projemizin kök dizininde terminalimizi açıp
node index.js
komutunu yazıp Enter tuşuna bastığımızda
3000 Portu Dinleniyor
şeklinde bir çıktı verilecektir. Daha sonrasında browser üzerinde adres çubuğuna
localhost:3000
yazdığımızda hemen hızlıca
app.get('/',function (req,res) {
res.send("Anasayfa")
})
belirtilen kod kısmı çalışacak ve ekrana Anasayfa yazısını bastıracaktır. Bu kısımdaki res.send("Anasayfa") komutunun görevi budur. Adres çubuğuna gelip
localhost:3000/hakkimda
yazdığımız zaman ise
app.get("/hakkimda",function (req,res){
res.send("Hakkımda")
})
kısmı çalışacak ve ekranımıza Hakkımda yazısını yazacaktır. Bu kısımdaki res.send("Hakkımda") komutunun görevi de budur. İşlemler gayet basit ve kolay dostlarım. Gelelim biz de kendimiz için bir istek ve bu isteği karşılayacak cevap oluşturalım. Burada cars isimli bir istek atalım ve ekranımıza araba markalarını yazdıralım. O halde sözü daha fazla uzatmadan hemen kodlama kısmına geçelim. Oluşturduğumuz index.js dosyasına gelip
app.get("/cars",function (req,res){
let cars = ["Rolls Royce", "Chrysler", "Mercedes"] // dizi oluşturduk
var message = ""; // verdireceğimiz mesajı oluşturduk
cars.forEach(function (value,index) {
message += (index + 1) + ". Araba: " + value + " / "; // dizi içerisini tek tek döndük ve mesajımızı oluşturduk
})
res.send(message) // ekranımıza mesajımızı bastırdık
});
şeklinde kodlarımızı yazalım. Terminal kısmımıza gelip
node index.js
komutumuzu yazıp enter tuşuna basalım. Daha sonrasında ise browser kısmımıza gelip adres çubuğumuza
localhost:3000/cars
yazdığımızda bize dönecek olan sonuç
1. Araba: Rolls Royce / 2. Araba: Chrysler / 3. Araba: Mercedes /
şeklinde olacaktır. Kodlarımız sorunsuz bir şekilde çalıştığını, İsteğimizin dinlendiğini ve başarılı bir şekilde cevap verildiğini açıkça görmüş olduk. Bütüün işlemler bu kadar basit dostlarım hiçbir zor kısmı yok :)
Eveeeet dostlarım 😊. Bu yazımda sizlere Node.js üzerinde express tanımından ve kullanımından elimden geldiğince dilim döndüğünce anlatmaya çalıştım. Umarım faydalı olmuşumdur. Eksik veya hatalı bir anlatım yapmış isem benimle iletişime geçmekten çekinmeyin. Konu başlarda biraz karmaşık veya zor gelebilir dostlarım anlıyorum. Bu aşamada sizlerden yapmanızı istediğim tek şey her yazımın altında da dediğim gibi "İstikrarlı ve Azimli Olmalısınız, Bolca Pratik Yapmalısınız". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır.
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)
Yazar Hakkında
Kendi Halinde Bir Backend Developer