Skip to content

Instantly share code, notes, and snippets.

@sirtimid
Last active January 27, 2017 18:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sirtimid/590f9596639558d58d8ce2545bce358d to your computer and use it in GitHub Desktop.
Save sirtimid/590f9596639558d58d8ce2545bce358d to your computer and use it in GitHub Desktop.
A simple node http server that logs all requests
'use strict'
const http = require('http')
const port = 3000
http
.createServer((request, response) => {
// Set CORS headers
response.setHeader('Access-Control-Allow-Origin', '*');
response.setHeader('Access-Control-Request-Method', '*');
response.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
response.setHeader('Access-Control-Allow-Headers', '*');
if (request.method === 'OPTIONS') {
response.writeHead(200);
response.end();
return;
}
// simple pipe the request to the response
request.pipe(response)
// show time the request took in a nice way
let start_at = process.hrtime()
response.on('finish', () => {
let diff = process.hrtime(start_at)
let time = diff[0] * 1e3 + diff[1] * 1e-6
console.log('\x1b[92m', request.method,'\x1b[0m', request.url, '\x1b[96m', time.toFixed(3), 'ms', '\x1b[0m')
})
})
.listen(port, () => {
console.log(`Server listening on: http://localhost:${port}`)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment