github.com/webonyx/up@v0.7.4-0.20180808230834-91b94e551323/http/relay/testdata/basic/app.js (about)

     1  const http = require('http');
     2  const url = require('url');
     3  const qs = require('querystring');
     4  const port = process.env.PORT;
     5  
     6  let server;
     7  
     8  const routes = {};
     9  
    10  routes['/echo'] = (req, res) => {
    11    const buffers = []
    12    req.on('data', b => buffers.push(b))
    13    req.on('end', _ => {
    14      const body = Buffer.concat(buffers).toString()
    15      res.setHeader('Content-Type', 'application/json')
    16      res.end(JSON.stringify({
    17        header: req.headers,
    18        url: req.url,
    19        body
    20      }, null, 2))
    21    });
    22  };
    23  
    24  routes['/timeout'] = (req, res) => {
    25    setTimeout(function(){
    26      res.end('Hello')
    27    }, 50000);
    28  };
    29  
    30  routes['/throw'] = (req, res) => {
    31    yaynode()
    32  };
    33  
    34  routes['/exit'] = (req, res) => {
    35    process.exit()
    36  };
    37  
    38  server = http.createServer((req, res) => {
    39    const r = Object.keys(routes).find(pattern => req.url.indexOf(pattern) === 0);
    40    const handler = r && routes[r];
    41    if (handler) {
    42      handler(req, res);
    43      return;
    44    }
    45  
    46    res.setHeader('Content-Type', 'text/plain')
    47    res.end('Hello World')
    48  }).listen(port);