Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Untuk menghindari server terlalu banyak permintaan bertumpuk, kita bisa menggunakan rate limiting. Ini adalah teknik yang membatasi jumlah permintaan yang bisa dilakukan ke server dalam jangka waktu tertentu. Mari kita belajar cara membuat rate limiting sederhana di Node.js.
Pertama, kita akan menggunakan middleware untuk memantau dan mengontrol jumlah permintaan. Middleware ini akan diperiksa setiap kali ada permintaan yang masuk ke server.
const rateLimit = (req, res, next) => {
const userIP = req.ip; // Mengidentifikasi pengguna berdasarkan IP
const currentTime = Date.now();
if (!userRequests[userIP]) {
// Jika pengguna IP baru, buat data baru
userRequests[userIP] = [];
}
// Hapus entri permintaan yang sudah lama
while (userRequests[userIP].length && currentTime - userRequests[userIP][0] > TIME_FRAME) {
userRequests[userIP].shift();
}
if (userRequests[userIP].length >= MAX_REQUESTS) {
// Jika jumlah permintaan lebih dari batas
res.status(429).send('Terlalu banyak permintaan, coba lagi nanti.');
} else {
userRequests[userIP].push(currentTime);
next();
}
};
Gunakan middleware tersebut pada aplikasi Node.js kamu. Ubah app
dan router
sesuai kebutuhan.
const express = require('express');
const app = express();
const TIME_FRAME = 60000; // 1 menit
const MAX_REQUESTS = 5; // Maksimal 5 permintaan
const userRequests = {};
app.use(rateLimit);
app.get('/', (req, res) => {
res.send('Halo, dunia!');
});
Setelah menyusun rate limiter, lakukan uji coba untuk memastikan berfungsi dengan baik:
Dengan rate limiting, kamu bisa memastikan server tetap stabil dan tidak mengalami overload karena terlalu banyak permintaan bertumpuk. Ini bisa menjadi langkah awal yang baik untuk meningkatkan keamanan dan kinerja aplikasi Node.js yang kamu buat. Jangan lupa untuk terus mengoptimasi dan menyesuaikan limit sesuai kebutuhan aplikasi kamu!
Link terkait: