UNPKG

1.39 kBtext/coffeescriptView Raw
1cors = require 'cors'
2morgan = require 'morgan'
3MessageController = require './src/message-controller'
4express = require 'express'
5bodyParser = require 'body-parser'
6errorHandler = require 'errorhandler'
7meshbluHealthcheck = require 'express-meshblu-healthcheck'
8debug = (require 'debug')('octoblu-flow-canary:express')
9expressVersion = require 'express-package-version'
10compression = require 'compression'
11OctobluRaven = require 'octoblu-raven'
12
13cage = new MessageController
14PORT = process.env.PORT ? 80
15octobluRaven = new OctobluRaven
16octobluRaven.patchGlobal()
17
18app = express()
19app.use compression()
20app.use octobluRaven.express().handleErrors()
21app.use meshbluHealthcheck()
22app.use expressVersion(format: '{"version": "%s"}')
23app.use cors()
24skip = (request, response) =>
25 return response.statusCode < 400
26app.use morgan 'dev', {immediate: false, skip}
27app.use errorHandler()
28app.use bodyParser.urlencoded limit: '50mb', extended : true
29app.use bodyParser.json limit : '50mb'
30
31app.post '/message', cage.postMessage
32app.get '/passing', cage.getPassing
33app.get '/stats', cage.getStats
34
35server = app.listen PORT, ->
36 host = server.address().address
37 port = server.address().port
38
39 debug "Server running on #{host}:#{port}"
40
41process.on 'SIGTERM', =>
42 console.log 'SIGTERM caught, exiting'
43 process.exit 0