Express.js 5 - Yenilikler ve Değişiklikler

Express.js, Node.js ekosisteminde en popüler web uygulama çerçevelerinden biri olarak öne çıkar. Yıllar boyunca sağladığı basitlik ve esneklik ile geliştiricilerin çok tercih ettiği bir seçenek oldu.

Express.js 5 - Yenilikler ve Değişiklikler

Bu makalede, uzun süredir beklenen Express.js 5 sürümü ile gelen yenilikleri ve değişiklikleri ele alıyoruz. Modern JavaScript geliştiricilerinin ilgisini çekecek çeşitli özellikleri ve iyileştirmeleri inceleyerek, eski sürümlerle olan farklarını kod örnekleri ile göstereceğiz.

Express.js 5 Nasıl Kurulur?

Express.js 5'i kurmak oldukça basit. Yarn veya npm kullanarak Express 5 sürümünü projenize ekleyebilirsiniz. Aşağıdaki komutlarla Express 5'i kurabilirsiniz:

Yarn ile Kurulum

yarn add express@5

npm ile Kurulum

npm install express@5

Bu komutlar ile projenize Express 5 sürümünü ekleyebilir ve en son özelliklerden yararlanabilirsiniz.

1. Async/Await ve Gelişmiş Hata Yönetimi

Express 4 sürümünde asenkron kod kullanımında çoğu zaman callback fonksiyonlarına ve try/catch bloklarına başvuruluyordu. Ancak Express 5, modern JavaScript'in sunduğu async/await desteğini tam anlamıyla kullanmamıza olanak tanıyor.

Eski Sürüm (Express 4)

app.get('/users', (req, res) => {
  User.find({}, (err, users) => {
    if (err) {
      res.status(500).send('Bir hata meydana geldi.');
    } else {
      res.json(users);
    }
  });
});

Yeni Sürüm (Express 5)

app.get('/users', async (req, res, next) => {
  try {
    const users = await User.find({});
    res.json(users);
  } catch (error) {
    next(error); // Hatalar şimdi otomatik olarak Express tarafından yakalanacak
  }
});

Express 5 ile asenkron hataları next() ile yakalamak daha kolay ve kod daha temiz hale geliyor. Bu sayede karmaşık callback zincirlerinden kurtulup daha okunabilir ve bakımı kolay kodlar yazabiliyoruz.

2. res.redirect() Değişiklikleri

Express 4'te res.redirect() metodunda durum kodlarını string olarak belirtmek mümkünken, Express 5 bu konuda daha tutarlı ve sıkı kurallar getiriyor.

Eski Sürüm (Express 4)

res.redirect('301', '/yeni-url');

Yeni Sürüm (Express 5)

res.redirect(301, '/yeni-url');

Artık durum kodları sadece sayısal olarak kullanılıyor, bu da kodun daha okunabilir ve anlaşılabilir olmasını sağlıyor.

3. Dinamik Route Parametreleri ve Daha Esnek Router

Express 5 ile birlikte route tanımlamalarında daha esnek parametre kullanımı mümkün hale geldi. Bu da daha karmaşık URL yapılarında bile çok daha kolay bir yönetim sağlıyor.

Yeni Bir Örnek

Express 5'te route parametrelerini daha esnek kullanabiliriz.

app.get('/products/:category/:id', (req, res) => {
  const { category, id } = req.params;
  res.send(`Kategori: ${category}, Ürün ID: ${id}`);
});

Bu sayede çok daha karmaşık rotaları tek bir yerde tanımlamak mümkün hale geliyor ve bu da uygulama içerisinde dinamik içerik sunmayı kolaylaştırıyor.

4. Güncellenen Bağımlılıklar ve Güvenlik İyileştirmeleri

Express 5, çekirdek bağımlılıklarını güncelleyerek güvenlik ve performans iyileştirmeleri sağlıyor. Bu sayede açık kaynaklı projelerde güvenlik zaafiyetlerini minimize etmek mümkün oluyor.

body-parser gibi daha önce ayrıca eklenmesi gereken modüller artık yerleşik hale getirildi.

Daha güçlü bir JSON ve URL-encoded veri işleme desteği sağlanıyor.

5. Daha Tutarlı ve Ayrıntılı Hata Mesajları

Express 5, hata mesajlarını geliştirerek geliştiricilere daha fazla bilgi sunuyor. Bu özellik, uygulamanızda meydana gelen hataları daha kolay ayıklamanıza ve gidermenize yardımcı oluyor.

Eski Hata Yönetimi (Express 4)

app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Bir hata oluştu!');
});

Yeni Hata Yönetimi (Express 5)

app.use((err, req, res, next) => {
  console.error('Hata mesajı:', err.message);
  console.error('Detaylar:', err.stack);
  res.status(500).send('Sunucu tarafında bir hata meydana geldi. Lütfen daha sonra tekrar deneyin.');
});

Express 5'te hata mesajları daha ayrıntılı ve geliştiricilerin sorunları daha kolay anlamasına olanak tanıyor.

6. Middleware Yapısında İyileştirmeler

Bazı eski connect temelli middleware'ler Express 5'te yerleşik olarak sunulmuyor. Bunun yerine daha modern ve bakımı daha iyi yapılan üçüncü taraf alternatifler kullanılması öneriliyor.

Örneğin, özel bir hata yakalama middleware'i oluşturarak tüm uygulamada kullanmak mümkün:

app.use((req, res, next) => {
  res.status(404).send('Aradığınız sayfa bulunamadı.');
});

Bu şekilde özel middleware'ler oluşturmak ve uygulamanın her aşamasında kullanılması çok daha basit hale geliyor.

 

Express.js 5, modern web geliştiricileri için daha fazla esneklik, daha temiz kod yazımı ve iyileştirilmiş hata yönetimi sunarak geliştirici deneyimini bir üst seviyeye taşıyor. Yeni özellikler ve değişiklikler, Express'i güvenli, hızlı ve modern bir Node.js çerçevesi olarak yeniden tanımlıyor.

Eğer mevcut projenizi Express 5'e güncellemeyi düşünüyorsanız, özellikle async/await kullanımı ve yeni hata yönetim mekanizmaları gibi özelliklerden faydalanarak uygulamanızı daha performanslı ve güvenli hale getirebilirsiniz. Bu yazıda ele aldığımız özelliklerin dışında, Express'in resmi dokümanlarına da göz atarak daha detaylı bilgi edinebilirsiniz.