Ваше требование известно как ограничение скорости . Это может быть очень сложно реализовать или очень просто. У меня был хороший успех с использованием express -rate-limit . Это express промежуточное ПО, предлагающее простые ограничения.
Примерно так ограничивает каждый IP-адрес до 100 запросов в минуту.
const RateLimit = require( 'express-rate-limit' )
var limiter = new RateLimit(
{
windowMs: 1000 * 60,
max: 100,
headers: true,
onLimitReached: function( req, res, options ) {
console.log( 'Request rate limited for requests from ', req.ip )
}
} )
app.use( limiter )
Но это слишком просто для коммерческой установки, где вы продаете доступ к вашему API, и дайте премиум-клиентам более высокий лимит. Это, как я уже говорил, сложно настроить.