github.com/cloudcredo/cloudrocker@v0.0.0-20160108110610-1320f8cc2dfd/sample-apps/node/node_modules/logfmt/examples/express_pipe.js (about)

     1  var app    = require('express')();
     2  var assert = require('assert');
     3  var http   = require('http');
     4  var through = require('through');
     5  var logfmt  = require('../logfmt');
     6  
     7  app.use(logfmt.bodyParserStream());
     8  
     9  app.post('/logs', function(req, res){
    10    if(!req.body) return res.send('OK');
    11  
    12    req.body.pipe(through(function(line){
    13      try {
    14        console.log(line);
    15        if(line.at === 'error'){
    16          assert.equal('H12', line.code)
    17          assert.equal('50.17.15.69', line.fwd)
    18        }else{
    19          assert.equal("bar", line["foo"])
    20          assert.equal(14, line.a)
    21          assert.equal("hello kitty", line['baz'])
    22          assert.equal('bro', line['cool%story'])
    23          assert.equal(true, line.f)
    24          assert.equal(true, line['%^asdf'])
    25        }
    26      } catch (e) {
    27        console.log(e)
    28        res.send('FAIL')
    29      }
    30    }, end))
    31  
    32    function end() { res.send('OK') }
    33  })
    34  
    35  http.createServer(app).listen(3000);
    36  console.log("Express server listening on port 3000")