Skip to content

Instantly share code, notes, and snippets.

@romgrk
Created February 1, 2018 17:49
Show Gist options
  • Select an option

  • Save romgrk/df237cd094c7e9f4873390c8701cda37 to your computer and use it in GitHub Desktop.

Select an option

Save romgrk/df237cd094c7e9f4873390c8701cda37 to your computer and use it in GitHub Desktop.
/*
* server.js
*/
const http = require('http')
const port = process.env.PORT || 3000
const server = http.createServer(requestHandler)
server.listen(port, (err) => {
if (err)
return console.log(err)
console.log(`server is listening on ${port}`)
})
function requestHandler(request, response) {
console.log(request.url)
// Set CORS headers
response.setHeader('Access-Control-Allow-Origin', '*')
response.setHeader('Access-Control-Request-Method', '*')
response.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET, POST')
response.setHeader('Access-Control-Allow-Headers', 'authorization, content-type')
response.setHeader('content-type', 'application/json')
// Check that we have JSON content
readStream(request)
.then(JSON.parse)
.then(content => {
response.end(JSON.stringify({ ok: true }))
})
.catch(err => {
response.end(JSON.stringify({ ok: false, message: err.toString() }))
})
}
function readStream(stream) {
return new Promise((resolve, reject) => {
const body = []
stream.on('data', (chunk) => body.push(chunk))
stream.on('end', () => resolve(Buffer.concat(body).toString()))
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment