Изучаю node.js. Подключил фреймворк Express, написал небольшое приложение. Со страницы делаю пост запрос через ajax и принимаю обратно json для дальнейшей обработки. Интересует вопрос как сделать так чтобы нельзя было делать слишком частые запросы. На стороне клиента понятно, я могу поставить заглушку, остановить события, скрыть кнопки т.д.. Но меня интересует как это контролировать на стороне сервера. Точнее я, как мне кажется, нашел решение, библиотека express-rate-limit. Она прекрасно справляется, но..
Поскольку запрос делается через ajax, то по достижению лимита запросы не обрабатываются, но я не могу понять, как показать это на странице, не перезагружая её? То есть можно ли получить какой-то коллбек по достижению лимита, отправить на фронт json с ошибкой, чтобы дать понять пользователю, что он больше не сможет отправить запрос.
Вот так express-rate-limit сейчас работает:
const RateLimit = require('express-rate-limit');
const app = express();
app.enable('trust proxy');
var apiLimiter = new RateLimit({
windowMs: 2 * 60 * 1000, // 2 minutes
max: 3,
});
app.post("/page", urlencodedParser, apiLimiter, function (request, response) {
//.....
}