Express.js, NodeJS üzerinde geliştirilmiş, web uygulamaları oluşturmak için hızlı ve minimalist bir web çatısıdır. Tekli veya çoklu sayfa içeren websiteleri veya API uygulamaları geliştirmek için idealdir. Sunucu uygulamaları geliştirmeyi çok kolaylaştırır. Node JS http modülü üzerine kurulmuştur. Middleware (orta katman) kullanım desteğine sahiptir.
Sunucu tabanlı web uygulamaları geliştirirken bir çok işlemi oldukça kolaylaştırır. Mesela sayfa yapısı (routing), arayüz işleme, ara katman uygulamaları, veritabanlarına bağlantı gibi. Günümüzde oldukça popüler bir framework olarak karşımıza çıkar. Bir süre daha bu şekilde gideceğini söylemek bir abartı sayılmaz.
Backend ihtiyacı duyan, finansal siteler, e-ticaret siteleri, bloglar, forum ve benzeri uygulamaları geliştirmek için kullanılabilir. Bir çok veritabanı ile birlikte çalışabilmektedir. Yazma okuma gibi dosya işlemleri için kullanılabilir. MEAN, MERN gibi isimlendirilen geliştirme ortamlarında (MERN – MongoDb, ExpressJS, React JS, Node JS) ki E harfi Express’i temsil eder.
Günümüzde çok sayıda firmanın tercih ettiği bir frameworktür. Node temelli olduğu için Node modüllerini kullanabilir. Ayrıca Express için geliştirilmiş farklı modüller de bulunmaktadır.
Express felsefesi, HTTP sunucuları için küçük, sağlam araçlar sağlayarak onu tek sayfalı uygulamalar, web siteleri, karmalar veya genel HTTP API’leri için harika bir çözüm haline getirmektir.
Express, sizi belirli bir ORM veya şablon motoru kullanmaya zorlamaz. Consolidate.js aracılığıyla 14’ün üzerinde şablon motoru desteğiyle, sayfa düzenini harika bir şekilde oluşturabilirsiniz. MySql ve benzeri bir çok veritabanı uygulaması ile birlite çalışabilir.
Neden ExpressJS Kullanmak Gerekli?
Aslında bir gereklilik yok. İsterseniz NodeJS ile de kendi sunucunuzu yazabilirsiniz. Fakat bu işlerin daha kolaylaşması ve hızlıca yapılabilmesi için bu işe odaklanmış bir web uygulama çatısı çok iyi olacaktır. Bu durumda tercihimizi Express den yana kullanabiliriz. Bize sağladığı faydalardan bazıları şunlardır.
- Node tabanlıdır. Bu nedenle NodeJS modüllerini kullanabilir.
- Web uygulaması geliştirmek için tasarlanmıştır, bu neden web uygulamalarını geliştirmek daha kolay ve hızlıdır.
- Orta katman ( middleware ) desteğine sahiptir. Tekrarlayan işlerin yönetimini kolaylaştırır.
- Arayüz motoru (template engine) desteği vardır. Yaklaşık 15 adet tepmlate engine desteğine sahiptir. İstediğinizi kullanabilirsiniz. Bunlardan bazılar ejs, teacup, ect, doT, handlebars şeklinde sıralanabilir.
- Sayfa yönlendirmeleri (routing) desteği ile gelir ve bu işlemleri oldukça kolaylaştırır.
- Static (sabit) sayfalar ile çalışmayı oldukça kolaylaştır. Bu nedenle css, resim gibi dosya yönetimi kolaylaşır.
- Bir çok veritabanı uygulamasını destekler. MongoDB, MarianDB, Postgresql bunlardan bazılarıdır.
- API uygulamaları geliştirmeyi kolaylaştır.
- JavaScript ile yazılmıştır bu nedenle JavaScript’in sağladığı kolaylıklardan faydalanır.
Bunun gibi bir çok sebep Express kullanmak için sıralanabilir.
Kurulum
Express JS kurulumu oldukça basittir. Herhangi bir npm kütüphanesi gibi kurabilirsiniz. Express kullanmak için sisteminizde NodeJS kurulu olmalıdır.
npm i express;Express JS İle Adım Adım İlk Web Uygulamasını (Sunucu) Oluşturma
Şimdi adım adım expressjs ile bir web uygulaması geliştirelim. Bunun için NodeJS kurulu bir bilgisayar ve internet bağlantısı gerekecek.
- İlk olarak uygulamamızı oluşturacağımız bir klasör oluşturalım. Bunu size kolay gelen bir yerde oluşturabilirsiniz. Klasör ismini merhaba-app koyabilirsiniz.
- Komut satırını açalım ve oluşturduğumuz dizine girelim. ( Bizim örneğimizde merhaba-app dizini)
- Şimdi npm init –y diyerek bir npm projesi oluşturalım. Burada -y parametresini kurulum yaparken bize sorulacak olan sorulara otomatik olarak evet (yes) cevabı verilmesi için kullanıyoruz.
- Oluşturduğumuz klasör içerisinde index.js adında bir dosya oluşturalım.
- npm i express komutu ile express js modülünü projemize ekleyelim.
Şimdi index.js dosyasını
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Merhaba Dünya');
});
app.listen(port);
şeklinde düzenleyelim. Artık uygulamamız kullanıma hazır. Çalıştırmak için
node indexkomutunu vermeniz yeterli olacaktır. Uygulamayı çalıştırdıktan sonra tarayıcınızın adres çubuğuna http://localhost:3000 adresini yazara bu adrese giderseniz ekranda Merhaba Dünya mesajını göreceksiniz.

Şimdi adım adım bu kodları inceleyelim.
- İlk satırda express modulünü alıyor ve express değişkenine atıyoruz.
const express = require('express') - Sonrasında
const app = express();satırı ile expressi app değişkenine atıyoruz. const port = 3000;satırı ile çalışacağımız port numarasını port değişkenine atıyoruz.- Ve asıl ilgileneceğimiz nokta, kısa yazılışla
app.get('/', (req, res) => res.send('Merhaba Dünya'));satırı ile bir route (yol) belirliyoruz ve buraya gelenler için tarayıcı ekranına Merhaba Dünya mesajını gönderiyoruz. app.listen(port);satırı ile daha önce belirlediğimi port değişkeni değerini kullanarak bu portun dinlenmesini istiyoruz.
app değişkenine express() değerini atadığımızda sunucu çekirdeğimizi oluşturmuş olduk.
İstekleri Yönetmek – Routing
app.get('/', (req, res) => {
res.send('Merhaba Dünya');
});Burada ise uygulamaya gelecek bir get değerini işliyoruz, yol (route) olarak ‘/’ belirtiyoruz ki, uygulama anasayfası anlamına geliyor. Buraya bir istek geldiğinde, kendi bilgisayarımızda çalıştığımız için localhostta bir istek geliyor, port olarak da 3000 değerini kullandığımızdan http://localhost:3000/ adresine denk geliyor, yukarıdaki kod işlemeye başlayacaktır. İkinci değer ise bir callback fonksiyonu ve iki parametre alıyor, bunları req ve res olarak adlandırdık. Farklı isimler de verebilirsiniz.
İlk parametre olan req istek yapıldığında gelen bilgileri tutar, request / istek olarak tanımlanır. Bunlara buradan ulaşabiliriz. İkinci parametre olarak kullandığımız res ise döndereceğimiz cevap için kullanılır ve response / cevap olarak tanımlanır. Bu örneğimizde req ile ilgili bir işlem yapmıyoruz. Sadece res.send() metodunu kullandık. Bu bir mesaj göndermek için kullanılır, redirect, sendFile, render gibi farklı metodlar da bulunmakta. İhtiyaca ve isteğe göre bir tanesi seçilir.
res.send(parametre) metoduna parametre olarak göndereceğimiz mesajı geçiyoruz. Bu örneğimizde Merhaba Dünya dedik.
Sunucuyu oluşturduk, route hazır şimdi gelecek istekleri dinlemeye başlayabiliriz. Bunun için express listen metodunu kullanıyoruz. Listen kullanırken hangi portu dinlememiz gerektiğini de bir parametre vererek belirtiyoruz.
Eğer bir kullanıcı http://localhost:3000 adresine bir istek gönderirse Merhaba Dünya mesajını tarayıcısının ekranında görüntüleyecektir.
Mesel şimdi bir hakkında sayfasını uygulamaya eklemek istersek yapmamız gereken yeni bir route oluşturmak.
app.get('/about', (req, res) => {
res.send('Hakkında Sayfası');
});Burada /about adında yeni bir route oluşturuyoruz ve bu route çağrıldığında ekrana Hakkında Sayfası çıkıyor. Kodu index.js içerisinde diğer routen altına ekleyelim.
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Merhaba Dünya');
});
app.get('/about', (req, res) => {
res.send('Hakkında Sayfası');
});
app.listen(port);Sonrasında CTRL-C tuşlarına iki defa basarak (terminal üzerinde) sunucumuzu durduralım ve sonra
node indexile tekrar suncumuzu başlatalım ve tarayıcımızın adres çubuğuna http://localhost:3000/about yazarak bu adrese gidelim. Karşımızda about sayfası, herşeyi doğru yaptıysanız ekranda Hakkında Sayfası mesajını göreceksiniz.

Gördüğünüz gibi express js ile bir web uygulaması geliştirmek oldukça kolaylaşıyor.
Çok Sorulan Sorular
ExpressJS hakkında sorulan sorulardan bazılarını bu bölümde sizler ile paylaşıyoruz.
Express Js öğrenmek kolay mı?
Express JS JavaScript ile geliştirilmiş, Node JS tabanlı bir web uygulama geliştirme çatısıdır. Eğer JavaScript biliyorsanız ve Node kullanıyorsanız ExpressJS’yi öğrenmeniz kolay olacaktır. Fakat bu bilgilere sahip değilseniz, JavaScript, Html, Css ve sonrasında NodeJS’yi öğrenmeniz gerekecektir.
ExpressJS bir programlama dili mi?
Hayır bir programlama dili değil. JavaScript ile yazılmış NodeJS temelli bir web uygulama çatısıdır.
Express ile React JS arasında fark nedir?
İki farklı kulvarda koşan iki ayrı kütüphane. React JS uygulama arayüzü geliştirmek için kullanılıyor. Bu nedenle ilgilendiği alan UI bölümü, ve ReactJS bir frontend kütüphanesidir. Express ise bir web uygulama çatısı ve backend geliştirmeler için kullanılıyor, kısaca sunucu veya API geliştirmekte kullanılıyor.
Express 2022 yılında da popüler mi?
Nmp üzerinde yapılan indirmelere bakıldığında otuz milyona yaklaşan bir indirme görünüyor. Bu günümüzde ExpressJS’nin ne kadar popüler olduğunu anlatmak için yeterlidir. Görünüşe göre de uzun bir süre bu popülerliğini sürdürecek.
Express JS Flask’a benziyor mu?
Flask Pyhton ile yazılmış bir web uygulama çatısı, Express ile JavaScript ile yazılmış bir web uygulama çatısı. Bu nedenle farklı programlama dillerini kullanıyorlar. Programlama açısından bir birlerinden farklılar. Fakat yaptıkları iş açısından bakıldığında benzer işler yapıyorlar. İkisinde de web uygulamaları ve API’ler geliştiriliyor ve ayrıca ikisi de çok kullanılan uygulama çatıları.
ExpressJS olmadan NodeJS kullanılabilir mi?
Aslında soru ters sorulmalıydı, Node JS olmadan Express JS kullanılabilir mi? şeklinde. Çünkü express node üzerine kurulmuş bir uygulama çatısıdır ve NodeJS’ye ihtiyaç duyar. NodeJS kullanmak için ExpressJS gerekli değildir.
Hangisi daha iyi Laravel mi yoksa Express mi?
İkiside çok kullanılan iki farklı web uygulama çatısı. Fakat Laravel Php tabanlı bir framework, oysa Express ise JavaScript tabanlı bir framework. Bu nedenle ikisinin kullanıldığı durumlar farklıdır. Eğer uygulama geliştirirken bir seçim yapmak zorundaysanız uygulama isterlerine göre karar vermek faydalı olabilir. Mesela php kullanılan bir projede Laravel tercih sebebi olabilirken, yeni başlayacak bir projede JavaScript deneyimine sahip geliştiriciler olduğunu varsayarsak ExpressJS düşünülebilir.
Yararlı Linkler
- ExpressJs Anasayfa
- Github Sayfası
- Wiki
- Google Group
- Gitter
- Npm
- Patika.dev Sıfırdan Express Uygulama Geliştirme
- Btk Akademi Node Eğitimi
- Udemy Express Framework Kursları
- Node ve Express’e Giriş
Sonsözler
Express.js JavaScript tabanlı web uygulamaları (suncular) oluşturmak için Node tabanlı geliştirilen bir web uygulama çatısıdır. Hızlı ve etkin ugulamalar geliştirmek için kullanabilirsiniz. Farklı seçeneklerin olduğu günümüzde en çok tercih edilen sunucu tarafı programlama çatılarından bir tanesidir.
Express js ile yaşadığınız sorunları bizimle paylaşır mısınız?
