首页 > 解决方案 > 如何让快递服务器一次只服务一个 API 请求

问题描述

我已经从 node express 服务器公开了一个 API,我希望只处理一个请求(由于资源限制),而其他请求应该被简单地拒绝。无论如何要做到这一点?

标签: node.jsapiexpress

解决方案


使用express-rate-limit,特别是如果您想为多条路线重复实施。

npm install --save express-rate-limit

const rateLimit = require("express-rate-limit");

const limiter = rateLimit({  
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 1 // limit each IP to 1 request per windowMs
});

//  apply to all requests
app.use(limiter);

// only apply to requests that begin with /api/
app.use("/api/", limiter);

// only apply to single route
app.post("/create-account", limiter , function(req, res) {
  //...
});

推荐阅读