Better dev server integration

This commit is contained in:
MICHAEL JACKSON
2018-02-16 16:00:06 -08:00
parent a22e0fa801
commit d6f2bc089a
42 changed files with 1753 additions and 1154 deletions

View File

@ -1,34 +1,26 @@
const http = require("http")
const throng = require("throng")
const createServer = require("./server/createServer")
const path = require("path");
const throng = require("throng");
const createServer = require("./server/createServer");
const createDevServer = require("./server/createDevServer");
const port = parseInt(process.env.PORT, 10) || 5000
const port = parseInt(process.env.PORT, 10) || 5000;
function startServer(id) {
const server = http.createServer(createServer())
const server =
process.env.NODE_ENV === "production"
? createServer(
path.resolve(__dirname, "public"),
path.resolve(__dirname, "server/stats.json")
)
: createDevServer(
path.resolve(__dirname, "public"),
require("./webpack.config"),
`http://localhost:${port}`
);
// Heroku dynos automatically timeout after 30s. Set our
// own timeout here to force sockets to close before that.
// https://devcenter.heroku.com/articles/request-timeout
server.setTimeout(25000, function(socket) {
const message = `Timeout of 25 seconds exceeded`
socket.end(
[
"HTTP/1.1 503 Service Unavailable",
"Date: " + new Date().toGMTString(),
"Content-Length: " + Buffer.byteLength(message),
"Content-Type: text/plain",
"Connection: close",
"",
message
].join("\r\n")
)
})
server.listen(port, function() {
console.log("Server #%s listening on port %s, Ctrl+C to stop", id, port)
})
server.listen(port, () => {
console.log("Server #%s listening on port %s, Ctrl+C to stop", id, port);
});
}
throng({
@ -36,4 +28,4 @@ throng({
lifetime: Infinity,
grace: 25000,
start: startServer
})
});