-
Notifications
You must be signed in to change notification settings - Fork 0
/
prod-server.js
33 lines (27 loc) · 979 Bytes
/
prod-server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var http = require('http'),
httpProxy = require('http-proxy'),
express = require('express'),
compression = require('compression'),
fallback = require('express-history-api-fallback'),
app = express();
app.use(compression());
var proxy = httpProxy.createProxyServer();
app.use('/api', reverseProxy);
const root = __dirname;
app.use(express.static(root));
app.use(fallback('index.html', {root: root}));
const server = http.createServer(app);
server.on('upgrade', function(req, socket) {
proxy.ws(req, socket, {target: {host: 'localhost', port: 8610}, ws: true});
});
function reverseProxy(req, res) {
proxy.web(req, res, {target: 'http://localhost:8610/api'});
proxy.on('error', function(err, req, res) {
res.writeHead(500, {
'Content-Type': 'text/plain'
});
res.end('Something went wrong. And we are reporting a custom error message.');
});
}
console.log("listening on port 8080");
server.listen(8080);