問題是在我指定的時間內沒有強制執行速率限制。它不會持續 35 分鐘,而是僅持續約 20 秒。另外,如果我繼續提出請求,則始終會強制執行限制,因此似乎重繪 了時間限制,我認為這也是出乎意料的。
除了這些問題,它可以按預期作業,限制我在“max”中指定的請求數量,只要我足夠快地發出它們。我已經在本地和 Heroku 服務器上進行了測驗。
以下是相關代碼:
應用程式.js
var express = require('express');
var dbRouter = require('./routes/db');
var limiter = require('express-rate-limit');
var app = express();
app.set('trust proxy', 1);
// This is a global limiter, not the one I'm having issues with.
// I've tried removing it, but the issue remained.
app.use(limiter({
windowMs: 10000,
max: 9
}));
app.use('/db', dbRouter);
module.exports = app;
資料庫.js
var express = require('express');
var router = express.Router();
var level_controller = require('../controllers/levelController');
var limiter = require('express-rate-limit');
var level_upload_limiter = limiter({
windowMS: 35 * 60 * 1000,
max: 1,
message: 'Too many level uploads. Please try again in about 30 minutes.'
});
router.post('/level/create', level_upload_limiter, level_controller.level_create_post);
module.exports = router;
levelController.js
exports.level_create_post = [
(req, res, next) => {
// ...
}
];
uj5u.com熱心網友回復:
這是您在設定中輸入的錯字:windowMS ->windowMs
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/460588.html
標籤:javascript 节点.js 表示 快递费率限制
上一篇:當前調度程式中的WPF異步
