github.com/cloudcredo/cloudrocker@v0.0.0-20160108110610-1320f8cc2dfd/sample-apps/node/node_modules/logfmt/examples/express_readable.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.on('readable', function(){
    13      var line = req.body.read();
    14      if(!line) return res.send('OK');
    15      try {
    16        console.log(line);
    17        if(line.at === 'error'){
    18          assert.equal('H12', line.code)
    19          assert.equal('50.17.15.69', line.fwd)
    20        }else{
    21          assert.equal("bar", line["foo"])
    22          assert.equal(14, line.a)
    23          assert.equal("hello kitty", line['baz'])
    24          assert.equal('bro', line['cool%story'])
    25          assert.equal(true, line.f)
    26          assert.equal(true, line['%^asdf'])
    27        }
    28      } catch (e) {
    29        console.log(e)
    30        res.send('FAIL')
    31      }
    32    })
    33    req.body.resume();
    34  })
    35  
    36  http.createServer(app).listen(3000);
    37  console.log("Express server listening on port 3000")