Express
Express.js
- Okunuşu
- ikspres
Kısaca
Express, en yaygın Node.js web framework'üdür: yönlendirmeyi, istekleri ve yanıtları bir middleware fonksiyonları zinciriyle ele alan minimal bir katmandır.
Express nedir?
Express ilk olarak 2010'da, Node.js'in kendisinden kısa süre sonra yayımlandı ve bir Node sunucusu yazmanın varsayılan yolu oldu. Node'un yerleşik HTTP modülünün üzerine çok az şey ekler: GET /users/:id gibi metotları ve yolları işleyici fonksiyonlara eşleyen bir yönlendirici, isteği okumak ve JSON ya da dosya göndermek için yardımcılar ve middleware eklemenin basit bir yolu.
Middleware Express'in kalbidir. Her istek sırayla bir fonksiyon listesinden geçer; her biri isteği okuyabilir ya da değiştirebilir, bir yanıt gönderebilir ya da isteği devretmek için next()'i çağırabilir. Loglama, JSON gövdelerini ayrıştırma, kimlik doğrulamayı kontrol etme, CORS'u ele alma ve statik dosya sunma hep middleware'dir; bunlar için binlerce hazır paket vardır.
Bu kadar küçük olduğu için Express yapıyı size bırakır: klasörlerin nasıl düzenleneceğini, girdinin nasıl doğrulanacağını, veritabanıyla nasıl konuşulacağını ya da hataların nasıl ele alınacağını. Bu esneklik onu popüler yaptı; büyük ekiplerin çoğu zaman NestJS gibi benzer fikirler etrafında kurulmuş kuralcı framework'leri ya da Fastify ve Hono gibi daha yeni ve hızlı olanları benimsemesinin nedeni de budur. 2024'te yayımlanan Express 5 de nihayet async hata yönetimine yerel destek ekledi.
Sık yapılan bir yanlış, Express'in Django ya da Rails gibi tam yığın (full-stack) bir framework olduğunu düşünmektir. ORM'i, varsayılan olarak şablonları, yönetim paneli ve yerleşik bir proje düzeni yoktur; birçok API'nin tam olarak ihtiyaç duyduğu gibi ince bir yönlendirme ve middleware katmanıdır.
Önemli noktalar
- Express, ilk olarak 2010'da yayımlanan, Node.js için minimal bir web framework'üdür.
- Route'lar HTTP metotlarını ve yollarını işleyici fonksiyonlara eşler.
- Middleware fonksiyonları her isteği sırayla işler ve next()'i çağırır.
- Proje yapısını, doğrulamayı ve veritabanı erişimini size bırakır.
- NestJS, Fastify ve Hono, benzer fikirler üzerine kurulmuş popüler alternatiflerdir.
Örnek
import express from "express";
const app = express();
app.use(express.json()); // middleware: parse JSON bodies
app.use((req, res, next) => { // middleware: log every request
console.log(req.method, req.path);
next();
});
const books = [{ id: 1, title: "Dune" }];
app.get("/books/:id", (req, res) => {
const book = books.find((b) => b.id === Number(req.params.id));
if (!book) return res.status(404).json({ error: "Not found" });
res.json(book);
});
app.post("/books", (req, res) => {
const book = { id: books.length + 1, title: req.body.title };
books.push(book);
res.status(201).json(book);
});
app.listen(3000);Sık sorulan sorular
Express bir backend framework'ü mü?
Evet. Express sunucuda Node.js ile çalışır ve API'ler ile web sunucuları kurmak için kullanılır. Minimal olduğu için çoğu zaman mikro framework olarak anılır.
Express'te middleware nedir?
İsteği, yanıtı ve bir next fonksiyonunu alan bir fonksiyondur. Bunları değiştirebilir, isteği bir yanıtla bitirebilir ya da kontrolü bir sonraki middleware'e veya route'a devredebilir.
Express mi NestJS mi?
Express hafif ve esnektir; küçük servisler ve hızlı API'ler için iyidir. NestJS ise modüller, dependency injection ve dekoratörlerle katı bir yapı ekler; bu da büyük ekiplerin büyük kod tabanlarını tutarlı tutmasına yardım eder. NestJS, Express'in üzerinde bile çalışabilir.
İlgili sayfalar
- Node.jsBackend ve API'ler, s. 31Node.js, JavaScript'i tarayıcı dışında çalıştıran, en çok web sunucuları, API'ler ve komut satırı araçları için kullanılan açık kaynaklı çalışma ortamıdır.
- MiddlewareBackend ve API'ler, s. 29Middleware, bir sistemin iki katmanı arasında duran yazılımdır; bir web sunucusunda çoğunlukla gelen istek ile son yanıt arasında çalışan koddur.
- REST APIBackend ve API'ler, s. 38REST API, verileri URL'lerle tanımlanan kaynaklar olarak sunan ve istemcilerin onları standart HTTP metotlarıyla okuyup değiştirmesini sağlayan web API'sidir.
- APIBackend ve API'ler, s. 2API, bir yazılımın başka bir yazılımdan veri ya da işlem talep etmesini sağlayan, belgelenmiş ve öngörülebilir kurallar bütünüdür.
- Web SunucusuBackend ve API'ler, s. 46Web sunucusu, tarayıcılardan ve diğer istemcilerden gelen HTTP isteklerini alıp sayfa, dosya ya da veriyle yanıt veren yazılım veya onu çalıştıran makinedir.
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin