From 7287e8b48f49c2b16b22cd160731d09848fb5a6d Mon Sep 17 00:00:00 2001 From: Candid Dauth Date: Thu, 9 Feb 2017 23:55:56 +0100 Subject: [PATCH] Move webserver code to separate file --- server/server.js | 50 +++++++-------------------------------------- server/webserver.js | 43 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 43 deletions(-) create mode 100644 server/webserver.js diff --git a/server/server.js b/server/server.js index 22827f3b..c24a2482 100644 --- a/server/server.js +++ b/server/server.js @@ -1,19 +1,8 @@ -var http = require("http"); -var compression = require("compression"); -var domain = require("domain"); -var Promise = require("promise"); -var express = require("express"); -var path = require("path"); -var webpack = require("webpack"); -var webpackConfig = require("../frontend/webpack.config"); -var webpackMiddleware = require("webpack-dev-middleware"); - var config = require("../config"); var Database = require("./database/database"); var utils = require("./utils"); var Socket = require("./socket"); - -var frontendPath = path.resolve(__dirname + "/../frontend"); +var webserver = require("./webserver"); Object.defineProperty(Error.prototype, "toJSON", { value: function() { @@ -32,41 +21,16 @@ process.on('unhandledRejection', (reason, promise) => { console.trace("Unhandled rejection", reason); }); +const database = new Database(); + utils.promiseAuto({ - database: () => new Database(), + databaseConnect: database.connect(), - databaseConnect: database => database.connect(), - - server: () => { - var app = express(); - app.use(compression()); - - app.get("/bundle-:hash.js", function(req, res, next) { - res.setHeader('Cache-Control', 'public, max-age=31557600'); // one year - - next(); - }); - - var staticMiddleware = process.env.FM_DEV - ? webpackMiddleware(webpack(webpackConfig), { - publicPath: "/" - }) - : express.static(frontendPath + "/build/"); - - app.use(staticMiddleware); - - app.get("/:padId", function(req, res, next) { - req.url = req.url.replace(/[^\/]*$/, ""); - req.originalUrl = req.originalUrl.replace(/[^\/]*$/, ""); - - staticMiddleware(req, res, next); - }); - - var server = http.createServer(app); - return Promise.denodeify(server.listen.bind(server))(config.port, config.host).then(() => server); + server: (databaseConnect) => { + return webserver.init(); }, - socket: (server, database) => { + socket: (server) => { return new Socket(server, database); } }).then(res => { diff --git a/server/webserver.js b/server/webserver.js new file mode 100644 index 00000000..1a75ded2 --- /dev/null +++ b/server/webserver.js @@ -0,0 +1,43 @@ +const compression = require("compression"); +const express = require("express"); +const http = require("http"); +const path = require("path"); +const Promise = require("promise"); +const webpack = require("webpack"); +const webpackMiddleware = require("webpack-dev-middleware"); + +const config = require("../config"); +const webpackConfig = require("../frontend/webpack.config"); + +const frontendPath = path.resolve(__dirname + "/../frontend"); + +const staticMiddleware = process.env.FM_DEV ? + webpackMiddleware(webpack(webpackConfig), { + publicPath: "/" + }) : + express.static(frontendPath + "/build/"); + +const webserver = module.exports = { + init() { + let app = express(); + app.use(compression()); + + app.get("/bundle-:hash.js", function(req, res, next) { + res.setHeader('Cache-Control', 'public, max-age=31557600'); // one year + + next(); + }); + + app.use(staticMiddleware); + + app.get("/:padId", function(req, res, next) { + req.url = req.url.replace(/[^\/]*$/, ""); + req.originalUrl = req.originalUrl.replace(/[^\/]*$/, ""); + + staticMiddleware(req, res, next); + }); + + let server = http.createServer(app); + return Promise.denodeify(server.listen.bind(server))(config.port, config.host).then(() => server); + } +};