express-rate-limitMiddleware pembatas tarif dasar untuk ekspres. Gunakan untuk membatasi permintaan berulang ke API publik dan/atau titik akhir seperti reset kata sandi. Bermain bagus dengan Express-Slow-Down dan Ratelimit-Header-Parser.
Dokumentasi lengkap tersedia secara online.
import { rateLimit } from 'express-rate-limit'
const limiter = rateLimit ( {
windowMs : 15 * 60 * 1000 , // 15 minutes
limit : 100 , // Limit each IP to 100 requests per `window` (here, per 15 minutes).
standardHeaders : 'draft-8' , // draft-6: `RateLimit-*` headers; draft-7 & draft-8: combined `RateLimit` header
legacyHeaders : false , // Disable the `X-RateLimit-*` headers.
// store: ... , // Redis, Memcached, etc. See below.
} )
// Apply the rate limiting middleware to all requests.
app . use ( limiter )Pembatas laju dilengkapi dengan toko memori bawaan, dan mendukung berbagai penyimpanan data eksternal.
Semua opsi fungsi mungkin async. Klik nama untuk info tambahan dan nilai default.
| Pilihan | Jenis | Perkataan |
|---|---|---|
windowMs | number | Berapa lama untuk mengingat permintaan, dalam milidetik. |
limit | number | function | Berapa banyak permintaan untuk mengizinkan. |
message | string | json | function | Respons untuk kembali setelah batas tercapai. |
statusCode | number | Kode status HTTP setelah batas tercapai (default adalah 429). |
handler | function | Fungsi untuk menjalankan setelah batas dicapai (mengesampingkan pengaturan message dan statusCode , jika diatur). |
legacyHeaders | boolean | Aktifkan header X-Rate-Limit . |
standardHeaders | 'draft-6' | 'draft-7' | 'draft-8' | Aktifkan header Ratelimit . |
identifier | string | function | Nama yang terkait dengan kebijakan kuota yang ditegakkan oleh pembatas tingkat ini. |
store | Store | Gunakan toko khusus untuk berbagi jumlah hit di beberapa node. |
passOnStoreError | boolean | Izinkan lalu lintas ( true ) atau blok ( false , default) jika toko menjadi tidak tersedia. |
keyGenerator | function | Identifikasi pengguna (default ke alamat IP). |
requestPropertyName | string | Tambahkan info batas tingkat ke objek req . |
skip | function | Kembalikan true untuk memotong limiter untuk permintaan yang diberikan. |
skipSuccessfulRequests | boolean | Uncount 1xx/2xx/3xx Responses. |
skipFailedRequests | boolean | Uncount 4xx/5xx Responses. |
requestWasSuccessful | function | Digunakan oleh skipSuccessfulRequests dan skipFailedRequests . |
validate | boolean | object | Aktifkan atau nonaktifkan pemeriksaan validasi bawaan. |
Disponsori oleh Zuplo Gateway API yang dikelola sepenuhnya untuk pengembang. Tambahkan pembatasan tingkat dinamis, otentikasi, dan lebih banyak lagi ke API apa pun dalam hitungan menit. Pelajari lebih lanjut di Zuplo.com

Terima kasih kepada Mintlify untuk hosting dokumentasi di Express-Rate-Limit.Mintlify.App
Akhirnya, terima kasih kepada semua orang yang berkontribusi pada proyek ini dengan cara apa pun! ?
Jika Anda menemukan bug atau ingin melihat sesuatu yang ditambahkan/diubah, silakan buka masalah! Jika Anda membutuhkan bantuan dengan sesuatu, jangan ragu untuk memulai diskusi!
Jika Anda ingin berkontribusi ke perpustakaan, terima kasih! Pertama, silakan baca panduan yang berkontribusi. Kemudian Anda dapat mengambil masalah apa pun dan memperbaiki/mengimplementasikannya!
MIT © Nathan Frieded, Vedant K