Middleware dalam Express.js: Mengendalikan Permintaan Pertengahan

Pengenalan kepada Middleware dalam Express.js

Middleware in Express.js ialah konsep berkuasa yang membolehkan anda melaksanakan fungsi dalam susunan tertentu semasa kitaran hayat permintaan-tindak balas. Fungsi ini boleh melakukan pelbagai tugas seperti pengesahan, pengelogan, pengesahan data dan banyak lagi. Middleware fungsi dilaksanakan secara berurutan, dan masing-masing middleware mempunyai akses kepada request dan response objek, serta next fungsi, yang memberikan kawalan kepada seterusnya middleware dalam timbunan.

Kenapa Guna Middleware ?

Middleware adalah penting untuk memodulatkan kefungsian aplikasi anda dan meningkatkan kebolehselenggaraannya. Ia membolehkan anda memastikan pengendali laluan anda bersih dan memfokuskan pada tugas tertentu sambil memunggah kebimbangan biasa atau merentas ke middleware fungsi. Pengasingan kebimbangan ini menggalakkan kebolehgunaan semula kod dan menjadikan pangkalan kod anda lebih teratur.

Mencipta dan Menggunakan Middleware

Untuk mencipta middleware dalam Express.js, anda menentukan fungsi yang mengambil tiga parameter: request, response, dan next.

Berikut ialah contoh asas yang middleware mencatatkan setiap permintaan masuk:

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);  

Anda boleh menggunakan app.use() kaedah untuk memohon middleware secara global pada semua laluan, atau anda boleh menggunakannya secara terpilih untuk laluan tertentu.

Perintah Middleware Pelaksanaan

Middleware fungsi dilaksanakan mengikut susunan yang ditakrifkan menggunakan app.use().

Sebagai contoh:

app.use(middleware1);  
app.use(middleware2);  

Dalam kes ini, middleware1 akan dilaksanakan sebelum ini middleware2 untuk semua permintaan yang masuk.

Mengendalikan Ralat dalam Middleware

Jika ralat berlaku dalam middleware fungsi, anda boleh menghantar ralat kepada next fungsi dan Express.js secara automatik akan melangkau ke pengendalian ralat middleware.

Berikut ialah contoh:

const errorMiddleware =(err, req, res, next) => {  
  console.error(err);  
  res.status(500).send('Something went wrong!');  
};  
  
app.use(errorMiddleware);  

Menggunakan Middleware untuk Pengesahan

Middleware biasanya digunakan untuk melaksanakan pengesahan dan kebenaran dalam aplikasi web. Sebagai contoh, anda boleh mencipta middleware fungsi yang menyemak sama ada pengguna disahkan sebelum membenarkan akses kepada laluan tertentu:

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!');  
});  

 

Kesimpulan

Middleware in Express.js ialah alat penting untuk mengurus dan mempertingkatkan kefungsian aplikasi web anda. Dengan mencipta middleware fungsi boleh guna semula, anda boleh menyelaraskan kod anda, memodulasi kebimbangan dan meningkatkan kebolehselenggaraan keseluruhan projek anda. Daripada pengendalian pengesahan kepada pengelogan dan pengurusan ralat, middleware memperkasakan anda untuk membina aplikasi web yang mantap dan selamat dengan cekap.