我正在嘗試使用 express 和 express-rate-limit 來限制匿名用戶的下載限制,問題是如果隨請求發送的用戶物件為真,我想禁用限制。我該怎么做呢?這是一個代碼片段:
const limiter = rateLimit({
windowMs: 24 * 60 * 60 * 1000, // 24 hours
max: if (user) { return 0 } else { return 10 }, //THIS IS THE LINE I NEED HELP WITH
standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
legacyHeaders: false, // Disable the `X-RateLimit-*` headers
})
app.use('/link', limiter)
app.post("/link", async (req, res) => {
const premiumLink = req.body.downloadLink;
const password = req.body.password;
const user = req.body.user;
//do function here
uj5u.com熱心網友回復:
根據 express-rate-limit 檔案,max可以是數字或函式。
最大:數量 | 功能
在限制客戶端速率之前的視窗期間允許的最大連接數。
可以是作為數字的限制本身,也可以是接受 Express 請求和回應物件然后回傳數字的(同步/異步)函式。
這是檔案中還提供的示例:
const isPremium = async (user) => {
// ...
}
const limiter = rateLimit({
// ...
max: async (request, response) => {
if (await isPremium(request.user)) return 10
else return 5
},
})
編輯:
為了更好地回答您的問題,您可以通過以下方式實作您想要做的事情:
const limiter = rateLimit({
// ...
max: async (request, response) => {
if (request.body.user) return 0
else return 10
},
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491268.html
標籤:javascript 节点.js 表示 限速
上一篇:如何將資料從表單發布到特定行?
