首先,正如您没有提到的那样,我假设您使用的是 express-rate-limit 附带的默认 MemoryStore。因此,要回答您的问题,您不必x-ratelimit-reset
在响应中手动设置标题,包会为您完成。
- 因此,如果您使用默认的 MemoryStore,则配置如下所示,
app.use(
RateLimit({
windowMs: 10 * 60 * 1000 , // 10 minutes
max: 100, // limit each IP to 100 requests per windowMs
message: 'You have exceeded the 100 requests in 10 minutes limit!',
})
);
- 而且,如果您使用的商店不是默认商店,您可以在其中添加商店配置,
app.use(
RateLimit({
store: new MongoStore({
uri: 'mongodb://localhost:27017/your-db-name',
expireTimeMs: 10 * 60 * 1000 // 10 minutes
}),
windowMs: 10 * 60 * 1000 , // 10 minutes
max: 100, // limit each IP to 100 requests per windowMs
message: 'You have exceeded the 100 requests in 10 minutes limit!',
})
);
在这里需要注意的是,rate-limt-redis
store 的 header 存在一些问题,x-ratelimit-reset
并且无法按预期工作。因此,您可以继续使用其他选项。