From 4b188ce1205f45eb696370b0bd89e1da24d8fc16 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Mon, 22 May 2017 13:31:02 +0100 Subject: [PATCH] support separate processes for web and api via an environment variable WEB_TYPE --- .../app/coffee/infrastructure/Server.coffee | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/services/web/app/coffee/infrastructure/Server.coffee b/services/web/app/coffee/infrastructure/Server.coffee index 4c031a8bd1..ab636e8d53 100644 --- a/services/web/app/coffee/infrastructure/Server.coffee +++ b/services/web/app/coffee/infrastructure/Server.coffee @@ -161,16 +161,28 @@ app.get "/heapdump", (req, res)-> logger.info ("creating HTTP server").yellow server = require('http').createServer(app) -# process api routes first, if nothing matched fall though and use -# web middlewear + routes -app.use(apiRouter) -app.use(ErrorController.handleApiError) -app.use(webRouter) -app.use(ErrorController.handleError) +# can set WEB_TYPE=api-only or WEB_TYPE=web-only for separate web and +# api processes +switch process.env.WEB_TYPE + when "api-only" + logger.info("providing api router"); + app.use(apiRouter) + app.use(ErrorController.handleApiError) + when "web-only" + logger.info("providing web router"); + app.use(webRouter) + app.use(ErrorController.handleError) + else + logger.info("providing web and api router"); + # process api routes first, if nothing matched fall though and use + # web middleware + routes + app.use(apiRouter) + app.use(ErrorController.handleApiError) + app.use(webRouter) + app.use(ErrorController.handleError) router = new Router(webRouter, apiRouter) - module.exports = app: app server: server