Get-Web
@Get-Web
Front-End Developer

Как запретить частые запросы к серверу node.js?

Изучаю 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) {
//.....
}
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Так ведь надо ловить ошибки при ajax запросах, сервер выдаст вам превышение лимита.
Для этого есть отдельный http code 429.

Если ответ не http code 200, значит запрос не прошел. Дальше по ситуации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы