27 lines
707 B
JavaScript
27 lines
707 B
JavaScript
|
var split = require('split');
|
||
|
var through = require('through');
|
||
|
var Readable = require('stream').Readable;
|
||
|
var PassThrough = require('stream').PassThrough;
|
||
|
var logfmt = require('../logfmt');
|
||
|
|
||
|
exports = module.exports = function(options){
|
||
|
if(options == null) options = {};
|
||
|
var mime = options.contentType || "application/logplex-1";
|
||
|
|
||
|
return function(req, res, next) {
|
||
|
|
||
|
//honor already parsed bodies
|
||
|
if (req._body) return next();
|
||
|
|
||
|
//mime-type check
|
||
|
var is_mime = req.header('content-type') === mime;
|
||
|
if (!is_mime) return next();
|
||
|
req._body = true;
|
||
|
req.body = new PassThrough({objectMode: true});
|
||
|
req.pipe(logfmt.streamParser()).pipe(req.body);
|
||
|
|
||
|
return next();
|
||
|
}
|
||
|
}
|
||
|
|