Node.js express Modülü

Yazıda Node.js ile web sunucusuna gelen istekleri yönetmek, düzenlemek ve yayınlamak için kullanılan express modülü ile ilgili bilgiler yer almaktadır.

Node.js express modülü web sunucu çatısıdır (framework).

Node.js içerisinde bulunan http modülünü kullanarak web uygulamalarını kolay ve hızlı bir şekilde geliştirmeyi sağlar.

Ayrıca Node.js connect Modülü ve Middleware yazısında yer alan orta katman yapısını destekler.

Orta katman desteği sayesinde sürekli yapılan benzer işlemlerin bir defa yazılarak çalışmasını sağlar.

Modülün avantajları

  • Web uygulamalarını kolay ve hızlı bir şekilde geliştirmeyi sağlar.
  • Sunmuş olduğu route yöntemiyle web isteklerinin yönetilmesini sağlar.
  • Çeşitli orta katman modülleri ile daha hızlı uygulama geliştirmeyi sağlar.
  • Pug, Vash, EJS, Handlebars vb. şablon motorlarını destekler.
  • Statik dosyaların yönetimini kolaylaştırır.
  • Farklı uygulamalar için REST API oluşturmayı sağlar.
  • MySQL, MongoDB, SQL SERVER vb. veritabanı uygulamaları geliştirmeyi kolaylaştırır.

Modülü yüklemek

Express modülü Node.js NPM paket yöneticisi ile

npm install express

komutu ile yüklenir.

Modülün package.json dosyasına dahil edilmesi için

npm install express --save

komutu kullanılır.

Express modülünü global olarak yüklemek için

npm install express -g

komutu kullanılır.

HTTP sunucusu oluşturmak

Express modülü ile HTTP sunucusu oluşturmak için aşağıdaki kodlar kullanılabilir.

'use strict';

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

app.listen(1453, function () {
  console.log('Sunucu çalışıyor...');
});

İstekleri yönetmek

Modül gelen istek yöntemlerine göre işlem yapmak için çeşitli metotlara sahiptir.

Örneğin; GET yöntemi ile gelen isteklere cevap vermek için get metodu POST için post metodu kullanılır.

'use strict';

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

app.get('/', function (req, res) {

  res.send('Merhaba Express');
  //res.send('<h1>Merhaba Express</h1>');

});

app.post('/', function (req, res) {
  res.send('Merhaba Express');
});

app.listen(1453, function () {
  console.log('Sunucu çalışıyor...');
});

HTTP isteklerini yönetmek ile ilgili detaylı bilgiye express route yönetimi yazımdan ulaşabilirsiniz.

Gelen isteklere cevap olarak bir dosya göndermek için sendFile metodu kullanılır.

'use strict';

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

app.get('/', function (req, res) {
  res.sendFile(__dirname + '/index.html');
});

app.listen(1453, function () {
  console.log('Sunucu çalışıyor...');
});

Örnekte anasayfaya gelen isteğe aynı klasörde bulunan index.html dosyası gönderilecektir.

Statik dosyaları yönetmek

Geliştirilen web sayfalarında CSS, JavaScript ve Resim gibi birden fazla dosya bulunabilir.

Ancak Node.js ile her dosya isteğine ayrı cevap vermek kodların uzamasına ve kod tekrarına neden olur.

Express içerisinde sabit dosyaların yolunu tanımlamak için static metodu kullanılır.

Uygulamada kullanılan dosyaların dosyalar ismindeki klasörde css, js ve resimler klasöründe saklandığını varsayalım.

'use strict';

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

app.use(express.static(__dirname + '/dosyalar'));

//app.use(express.static('dosyalar'));

app.listen(1453, function () {
  console.log('Sunucu çalışıyor...');
});

Artık dosyalar klasörü içerisindeki statik dosya ve klasörlere http://localhost:1453/resimler/elma.jpg yoluna benzer bir yol ile ulaşabiliriz.

Statik dosyaları farklı bir ad ile çağırmak için önüne adının yazılması yeterli olacaktır.

'use strict';

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

app.use('/files', express.static(__dirname + '/dosyalar'));

app.listen(1453, function () {
  console.log('Sunucu çalışıyor...');
});

Artık dosyalar klasörüne files adıyla erişebiliriz.

Sayfayı yönlendirmek

Express modülü istek ve cevap parametrelerine çeşitli metotları ekleyerek isteklere daha esnek cevap verilmesini sağlar.

Express modülü cevap parametresi redirect metodu ile gelen isteği farklı bir sayfaya yönlendirebiliriz.

'use strict';

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

app.get('/', function (req, res) {
  res.redirect('http://www.yusufsezer.com.tr');
});

app.listen(1453, function () {
  console.log('Sunucu çalışıyor...');
});

Anasayfaya gelen istekleri http://www.yusufsezer.com.tr adresine yönlendirmiş olduk.

Yönlendirmeyi sayfa içerisine yapmak için sadece klasör ismini yazmak yeterli olacaktır.

'use strict';

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

app.get('/panel', function (req, res) {
  res.redirect('/giris');
});

app.listen(1453, function () {
  console.log('Sunucu çalışıyor...');
});

NOT: Yönlendirilecek sayfa içinde ayrıca bir cevap işlevi yazılması gerekir.

Node.js Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!