Comments (3)
Hey, sorry I missed this; notifications got turned off somehow.
As for linear vs exponential, linear seemed to work well enough, so I just left it at that.
from express-slow-down.
Would be great to have exponential backoff in the package? I am asking, coz maybe I could try to implement that.
from express-slow-down.
Yeah, that sounds fine. If we made it a function, you'd probably want to pass in a few arguments - the number of hits, the request, the response, maybe the full configuration.
Actually, if we made it trigger after setting req.slowdown instead of before, we could use that for the current number of hits. So, the default might look like
function calculateDelay(req, res, config) {
return (req.slowdown.current - config.delayAfter) * config.delayMs;
}
and then this line could be updated with a call to config.calculateDelay
instead of doing the math there:
And then we could offer a built-in exponential option that did Math.pow()
instead of *
, or folks could come up with their own.
from express-slow-down.
Related Issues (17)
- Look into using req.rateLimit / req.slowDown to share data with express-rate-limit instead of needing a second store HOT 1
- Logging when threshold met HOT 1
- delayAfter = 0 does not disable rate slowdown HOT 1
- Allow failed requests to count twice HOT 2
- Incompatible with latest rate-limit-redis RedisStore HOT 7
- Question: Is delay per IP or for all IPs? HOT 1
- Release v1.4.1 fails test HOT 6
- On v1.4.1 when slow delay is triggered the http request end up hanging up indefinitly and never being resolved HOT 19
- TypeError: Cannot read properties of undefined (reading 'toString') HOT 3
- Add support for modern store interface HOT 1
- onLimitReached , or running custom code HOT 2
- user passed in validate overwrites `limit: false` HOT 4
- CVE-2024-29041 vulnerability of Express.js HOT 1
- Add maximum value to slow down delay
- maxDelayMs missing from @types/express-slow-down HOT 1
- req.ip is undefiend on production HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from express-slow-down.