Просмотр исходного кода

support separate processes for web and api

via an environment variable WEB_TYPE
Brian Gough 9 лет назад
Родитель
Сommit
4b188ce120
1 измененных файлов с 19 добавлено и 7 удалено
  1. 19 7
      services/web/app/coffee/infrastructure/Server.coffee

+ 19 - 7
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