Hijack HttpResponses
npm install hijackresponse-nobackpressure



Module that allows you to rewrite HTTP responses from middleware further down
the stack, such as static providers, HTTP proxies etc.
This module is the spiritual successor to
express-hijackresponse
attempting to solve the same goals. The differences from the original module are
primarily that the API is slightly different, there's no direct coupling to
express and it supports streams2.
It's mostly useful for content filters. The original use case is injecting an
inline JavaScript into all HTML responses in
LiveStyle. It is also used in a series
of transpiler and preprocessing middleware:
- express-compiless
- express-processimage
- express-extractheaders
- express-autoprefixer
- express-jsxtransform
```
$ npm install hijackresponse
`js
var express = require('express');
var hijackResponse = require('hijackresponse');
var app = express();
app.use(function (req, res, next) {
hijackresponse(res, function (err, res) {
if (err) {
res.unhijack(); // Make the original res object work again
return next(err);
}
// Don't hijack HTML responses:
if (/^text/html(?:;$)/.test(res.getHeader('Content-Type'))) {
return res.unhijack();
}
res.setHeader('X-Hijacked', 'yes!');
res.removeHeader('Content-Length');
res
.pipe(transformStream)
.pipe(res);
});
// next() must be called explicitly, even when hijacking the response:
next();
});
`
This module is published under the ISC License. See the LICENCE` file for
additional details.