Skip to content

Commit d3d0577

Browse files
committed
(#15) server implementation.
1 parent a050f13 commit d3d0577

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

server/express-server.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Webpack
2+
var webpack = require('webpack');
3+
var WebpackDevServer = require('webpack-dev-server');
4+
var webpackConfig = require('../webpack.config');
5+
6+
// Express
7+
var express = require('express');
8+
var history = require('connect-history-api-fallback');
9+
var morgan = require('morgan');
10+
var bodyParser = require('body-parser');
11+
12+
// Express App
13+
var app = express();
14+
15+
// Env
16+
var PORT = process.env.PORT || 3000;
17+
var NODE_ENV = process.env.NODE_ENV || 'development';
18+
19+
app.use(morgan('dev'));
20+
app.use(bodyParser.json());
21+
app.use(bodyParser.urlencoded({
22+
extended: true
23+
}));
24+
25+
// Angular Http content type for POST etc defaults to text/plain at
26+
app.use(bodyParser.text(), function ngHttpFix(req, next) {
27+
try {
28+
req.body = JSON.parse(req.body);
29+
next();
30+
} catch (e) {
31+
next();
32+
}
33+
});
34+
35+
// Your middleware
36+
app.use(history());
37+
app.use(express.static('src/public'));
38+
39+
// Only use in development
40+
if (NODE_ENV === 'development') {
41+
var server = new WebpackDevServer(webpack(webpackConfig), {
42+
publicPath: '/__build__',
43+
historyApiFallback: false, // won't work due to order
44+
inline: true,
45+
quiet: false,
46+
noInfo: false,
47+
stats: {
48+
colors: true
49+
}
50+
});
51+
// Webpack express app that uses socket.io
52+
app.use(server.app);
53+
} else {
54+
app.use('/__build__', express.static('__build__'));
55+
}
56+
57+
58+
app.listen(PORT, function () {
59+
console.log('Listen on http://localhost:' + PORT + ' in ' + NODE_ENV);
60+
});

0 commit comments

Comments
 (0)