hijackresponse
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:
Installation
$ npm install hijackresponse
Usage
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();
return next(err);
}
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();
});
License
This module is published under the ISC License. See the LICENCE
file for
additional details.