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);