解析node.js中的每个网址节流

时间:2013-08-16 22:17:12

标签: node.js restify

文档说明:

  

请注意,您始终可以将其放在每个URL路由上以启用   对不同资源的不同请求率(例如,一个   路由,喜欢/ my / slow / database比overwhlem更容易   /我/快/内存缓存)。

我无法找到如何实现这一点。

基本上,我想以与我的API不同的节流速率提供静态文件。

1 个答案:

答案 0 :(得分:11)

设置限制(速率限制器),为这样的某些端点解析。

    var rateLimit = restify.throttle({burst:100,rate:50,ip:true});
    server.get('/my/endpoint',
        rateLimit,
        function(req, res, next) {
            // Do something here
            return next();
        }
    );
    server.post('/another/endpoint',
        rateLimit,
        function(req, res, next) {
            // Do something here
            return next();
        }
    );

或者像这样。

    server.post('/my/endpoint',
        restify.throttle({burst:100,rate:50,ip:true}),
        function(req, res, next) {
            // Do something here
            return next();
        }
    );

即使在每个端点限制时,仍可能需要全局限制,因此可以这样做。

    server.use(restify.throttle({burst:100,rate:50,ip:true});

(参考)Throttle is one of restify's plugins.