Запуск тела промежуточного программного обеспечения только в некоторых случаях

#node.js #express

#node.js #экспресс

Вопрос:

Мое понимание промежуточного программного обеспечения express всегда заключалось в том, что оно срабатывает каждый раз, когда мы помещаем его в экспресс-маршрутизатор. Я просматривал документацию пакета npm express-bouncer и увидел это:

 bouncer.blocked = function (req, res, next, remaining)
{
    res.send (429, "Too many requests have been made, "  
        "please wait "   remaining / 1000   " seconds");
};

// Route we wish to protect with bouncer middleware
app.post ("/login", bouncer.block, function (req, res)
{
    if (LoginFailed)
    {
        // Login failed
    }

    else
    {
        bouncer.reset (req);
        // Login succeeded
    }
});
  

Что res.send мешает запуску каждый раз, а не только при атаке грубой силы?

Ответ №1:

Я думаю, вы просто пропустили код, определенная вами функция заблокирована, а промежуточное программное обеспечение заблокировано. Вы можете видеть в исходном коде, который block содержит реализацию для выполнения подсчета, и она вызывается только blocked при достижении ограничения.