api-delay
Build Status"> 
What?
- Deliberately cause a delayed http response in an express app.
Why?
- Simulate a slow api response to test front end handling.
- Throttle api access to abusers, non-premium users, etc.
How?
- Creates a function that can be used as app middleware or a route handler.
- Set the time and trigger options to customize the delayed call to next().
When?
Installation
npm install api-delay
Testing
npm test
Usage
'use strict';
// create express app
const app = require('express')();
// get configurable middleware
const { delayNext, delayNextIf } = require('api-delay');
// will add a 200 millisecond delay in express request/response
const middleWareDelay = delayNext({ time: 200 });
// will add a 500 millisecond delay in express request/response if trigger function returns truthy
const conditionalMiddleWareDelay = delayNextIf({
time: 500,
trigger: receiver => {
// if username is falsey, expression returns truthy to trigger delay
return !receiver.req.body.username;
}
});
// add as middleware to all routes
app.use(middleWareDelay);
// add as a handler to a specific route
app.all('/somepath', [conditionalMiddleWareDelay], (req, res) => {
res.send('some_response');
});
See more usage in docs, examples, and tests