giriş Middleware _ Express.js
Middleware in, Express.js istek-yanıt yaşam döngüsü sırasında işlevleri belirli bir sırayla yürütmenize izin veren güçlü bir kavramdır. Bu işlevler, kimlik doğrulama, günlük kaydı, veri doğrulama ve daha fazlası gibi çeşitli görevleri gerçekleştirebilir. Middleware işlevler sıralı olarak yürütülür ve her birinin, kontrolü yığındaki bir sonrakine geçiren işlevin yanı sıra ve nesnelerine middleware erişimi vardır. request
response
next
middleware
Neden Kullanılır Middleware ?
Middleware uygulamanızın işlevselliğini modüler hale getirmek ve sürdürülebilirliğini artırmak için gereklidir. Ortak veya kesişen endişeleri işlevlere yüklerken, rota işleyicilerinizi temiz tutmanıza ve belirli görevlere odaklanmanıza olanak tanır middleware. Endişelerin bu şekilde ayrılması, kodun yeniden kullanılabilirliğini artırır ve kod tabanınızı daha düzenli hale getirir.
Oluşturma ve Kullanma Middleware
middleware içinde oluşturmak için Express.js üç parametre alan bir işlev tanımlarsınız: request
, response
ve next
.
middleware Gelen her isteği günlüğe kaydeden temel bir örneği burada bulabilirsiniz:
const logMiddleware =(req, res, next) => {
console.log(`Received a ${req.method} request at ${req.url}`);
next(); // Pass control to the next middleware
};
app.use(logMiddleware);
app.use()
Yöntemi tüm rotalara global olarak uygulamak için kullanabilir middleware veya belirli rotalar için seçici olarak kullanabilirsiniz.
Middleware İcra Emri
Middleware işlevler, kullanılarak tanımlandıkları sırayla yürütülür app.use()
.
Örneğin:
app.use(middleware1);
app.use(middleware2);
Bu durumda, gelen tüm istekler için middleware1
daha önce çalıştırılacaktır middleware2
.
İşleme Hataları Middleware
Bir işlev içinde bir hata oluşursa middleware, hatayı işleve iletebilir next
ve Express.js otomatik olarak hata işlemeye atlayabilirsiniz middleware.
İşte bir örnek:
const errorMiddleware =(err, req, res, next) => {
console.error(err);
res.status(500).send('Something went wrong!');
};
app.use(errorMiddleware);
Middleware Kimlik doğrulama için kullanma
Middleware web uygulamalarında kimlik doğrulama ve yetkilendirme uygulamak için yaygın olarak kullanılır. middleware Örneğin, belirli yollara erişime izin vermeden önce bir kullanıcının kimliğinin doğrulanıp doğrulanmadığını kontrol eden bir işlev oluşturabilirsiniz:
const authenticateMiddleware =(req, res, next) => {
if(req.isAuthenticated()) {
return next(); // User is authenticated, proceed to the next middleware
}
res.redirect('/login'); // User is not authenticated, redirect to login page
};
app.get('/profile', authenticateMiddleware,(req, res) => {
res.send('Welcome to your profile!');
});
Çözüm
Middleware in Express.js, web uygulamalarınızın işlevselliğini yönetmek ve geliştirmek için hayati bir araçtır. Yeniden kullanılabilir işlevler oluşturarak middleware kodunuzu düzene sokabilir, sorunları modüler hale getirebilir ve projelerinizin genel bakımını iyileştirebilirsiniz. Kimlik doğrulamadan günlük kaydına ve hata yönetimine kadar, middleware sağlam ve güvenli web uygulamalarını verimli bir şekilde oluşturmanıza olanak tanır.