You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
5 months ago | |
---|---|---|
.. | ||
example | 5 months ago | |
node_modules | 5 months ago | |
test | 5 months ago | |
.travis.yml | 5 months ago | |
LICENSE | 5 months ago | |
index.js | 5 months ago | |
package.json | 5 months ago | |
readme.markdown | 5 months ago |
readme.markdown
oppressor
streaming http compression response negotiator
example
You can use plain old streams:
var oppressor = require('oppressor');
var fs = require('fs');
var http = require('http');
var server = http.createServer(function (req, res) {
fs.createReadStream(__dirname + '/data.txt')
.pipe(oppressor(req))
.pipe(res)
;
});
server.listen(8000);
or you can use fancy streaming static file server modules like filed that set handy things like etag, last-modified, and content-type headers for you:
(For now you'll need to use my fork until this pull request gets merged.)
var oppressor = require('oppressor');
var filed = require('filed');
var http = require('http');
var server = http.createServer(function (req, res) {
filed(__dirname + '/data.txt')
.pipe(oppressor(req))
.pipe(res)
;
});
server.listen(8000);
methods
var oppressor = require('oppressor')
var stream = oppressor(req)
Return a duplex stream that will be compressed with gzip, deflate, or no compression depending on the accept-encoding headers sent.
oppressor will emulate calls to http.ServerResponse methods like writeHead()
so that modules like filed that expect to be
piped directly to the response object will work.
install
With npm do:
npm install oppressor
license
MIT