forked from cocoonprojects/welo-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
35 lines (30 loc) · 1.15 KB
/
index.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
34
35
var configFile = './config.' + (process.env.NODE_ENV || 'development');
var config = require(configFile);
if(!config) {
console.log('Unable to find config file ' + configFile);
} else {
console.log('API End Point [apiEndPoint]: ' + config.apiEndPoint);
}
var express = require('express');
var httpProxy = require('http-proxy');
var url = require('url');
var server = express();
server.set('port', config.serverPort);
server.use(express.static(__dirname + '/public'));
var apiProxy = httpProxy.createProxyServer();
apiProxy.on('proxyRes', function(proxyRes, req, res) {
if(proxyRes.headers.location) {
proxyRes.headers.location = '/api' + proxyRes.headers.location;
}
});
server.all("/api/*", function(req, res) {
req.headers.host = url.parse(config.apiEndPoint).hostname;
req.url = req.url.substring(4);
apiProxy.web(req, res, { target: config.apiEndPoint }, function(e) {
console.log(config.apiEndPoint + e);
});
console.log("Request made to " + req.headers.host + req.url);
});
server.listen(server.get('port'), config.serverIpAddress, function() {
console.log('Express server listening on ' + config.serverIpAddress + ', port ' + server.get('port'));
});