Dalam Express, middleware adalah konsep utama. js, kerangka kerja aplikasi web yang banyak digunakan untuk Node. js. Fungsi middleware mendefinisikan kode yang diatur di antara dua bagian kode lain yang menangani permintaan dan respons, sehingga memungkinkan Anda untuk dapat melayani, mengubah, dan memproses data selama siklus permintaan-respons. Jadi, penting untuk memahami middleware untuk membangun aplikasi Express yang dapat diskalakan dan dipelihara.
Apa yang dimaksud dengan Middleware?
Fungsi middleware dalam express.js membuat fungsi yang memiliki akses ke objek permintaan (req), objek respons (res), dan fungsi next(). Fungsi-fungsi tersebut berjalan sesuai dengan urutan yang telah didefinisikan, dan dapat melakukan hal ini:
- Menjalankan kode apa pun: Middleware dapat mencatat informasi, mengautentikasi pengguna, mengurai badan permintaan, dan lain-lain.
- Memodifikasi objek permintaan dan respons: Jembatan berguna untuk menambahkan properti atau memodifikasi objek req dan res sehingga dapat digunakan di kemudian hari dalam siklus hidup permintaan.
- Akhiri siklus permintaan-respons: Middleware dapat merespons kembali ke klien, sehingga mengakhiri siklus tersebut.
- Eksekusi Middleware Berikutnya: Jika middleware saat ini tidak mengakhiri siklus, fungsi next() harus digunakan untuk mentransfer kontrol ke middleware berikutnya dalam stack.
sumber: codepolitan.com |
Berbagai Jenis Middleware di Express js
Middleware di Express. Bergantung pada tujuan dan ruang lingkupnya, js dapat diklasifikasikan ke dalam berbagai jenis:
1. Middleware Tingkat Aplikasi
Middleware tingkat aplikasi dapat didefinisikan di tingkat atas aplikasi Anda dengan metode app. use() atau app. METHOD() metode. Fungsi-fungsi middleware tersebut biasanya digunakan untuk pencatatan, penguraian JSON, atau menangani kesalahan.
const express = require('express');const app = express();app.use((req, res, next) => {console.log(`Request Method: ${req.method}, URL: ${req.url}`);next(); // Passes control to the next middleware});app.get('/', (req, res) => {res.send('Hello, World!');});app.listen(3000, () => console.log('Server running on port 3000'));
2. Middleware Tingkat Router
Middleware tingkat router khusus untuk sebuah rute atau sekelompok rute. Ini dibuat melalui router. menggunakan metode use().
const express = require('express');const router = express.Router();router.use((req, res, next) => {console.log('Middleware for router');next();});router.get('/user', (req, res) => {res.send('User profile');});module.exports = router;
3. Middleware Bawaan
Express memiliki middleware bawaan untuk banyak tugas umum, seperti menyajikan file statis atau mengurai badan permintaan. Contohnya antara lain:
- express. json(): Mem-parsing permintaan yang masuk dengan muatan JSON.
- express. urlencoded(): fromUrlencoded Mengurai muatan yang di-urlencode.
- express. static(): Digunakan untuk melayani file statis seperti HTML, CSS, JavaScript.
app.use(express.json());app.use(express.urlencoded({ extended: true }));app.use(express.static('public'));
4. Middleware Pihak Ketiga
Middleware pihak ketiga untuk fungsionalitas yang diperluas Ekspres Ini termasuk morgan untuk pencatatan, cors untuk berbagi sumber daya lintas asal, pengurai cookie untuk cookie, dan sebagainya.
const morgan = require('morgan');const cors = require('cors');app.use(morgan('dev'));app.use(cors());
5. Middleware Penanganan Kesalahan
Middleware Penanganan Kesalahan: middleware ini menangkap kesalahan dan kemudian menanganinya untuk Anda. Dibutuhkan empat parameter: (err, req, res, next) Anda menggunakannya setelah middleware dan rute lainnya.
app.use((err, req, res, next) => {console.error(err.stack);res.status(500).send('Something went wrong!');});
Aliran Middleware di Express.js
Fungsi middleware dieksekusi sesuai dengan urutan yang didefinisikan, sehingga alur eksekusi middleware berurutan. next() memutuskan apakah permintaan akan dilanjutkan ke middleware berikutnya atau tidak. Tidak memanggil next() atau memanggil res. send() akan mengakhiri siklus sehingga tidak ada middleware lain yang dieksekusi.
Sebagai contoh:
app.use((req, res, next) => {console.log('First middleware');next();});app.use((req, res, next) => {console.log('Second middleware');res.send('Response from second middleware');});
Keluaran:
First middleware
Second middleware
Praktik Terbaik untuk Middleware
- Modularisasi: Hanya satu middleware per modul; ujilah secara mandiri.
- Urutan middleware itu penting: Selalu tentukan middleware dalam urutan yang benar karena Express memproses masing-masing secara berurutan.
- Menerapkan Middleware Penanganan Kesalahan: Pastikan untuk menambahkan middleware penanganan kesalahan untuk menangani dan mengelola kesalahan dengan baik.
- Berlaku untuk subset kecil: Gunakan middleware tingkat rute jika memungkinkan.
Kesimpulan
Middleware adalah garis hidup dari aplikasi Express.js. Dengan pengetahuan seperti itu, membangun aplikasi web yang kuat, berkinerja tinggi, dan dapat diskalakan dapat dilakukan dengan menggunakannya.
kembali ke>>>> Memulai dengan Express.js untuk Pengembangan Web