Node.js API速率限制与多个速率限制

我正在开发一个多次访问公共API的应用程序。 但是,API有多个速率限制,我的应用程序必须满足。

速率限制是每1秒20个请求,每2分钟请求100个请求。

我一直在寻找一些速率限制软件包,但他们都似乎只能设置一个单一的速率限制。 我可以将速率限制设置为每秒20个请求,但是我可以在5秒内发出100个请求并违反第二个限制。 我也可以设置每两分钟100个请求的速率限制,但这将立即违反第一个限制。 有一些包可以帮助我达到两个速率限制吗?

如果您使用这个快递中间件 ,您可以按照以下方式设置2个限制:

 var RateLimit = require('express-rate-limit'); var apiLimiterSeconds = new RateLimit({ windowMs: 1, // 1 second max: 20, delayMs: 0 // disabled }); var apiLimiterMinutes = new RateLimit({ windowMs: 2*60, // 2 minutes max: 100, delayMs: 0 // disabled }); // only apply to requests that begin with /api/ app.use('/api/', apiLimiterSeconds); app.use('/api/', apiLimiterMinutes);