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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
var config = require('../etc/_Config');
var trace = require('../etc/_Trace');
var RestAPI = require('./RestApis/_all');
var fs = require('fs');
var express = require('express');
var session = require('express-session');
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
// instanciate express HTTP server
var app = express();
// chose dev or prod rootdir
var staticdir = 'dist.dev';
if (process.env.MODE) staticdir = process.env.MODE === 'prod' ? 'dist.prod' : 'dist.dev';
else staticdir = config.MODE === 'prod' ? 'dist.prod' : 'dist.dev';
var rootdir = __dirname + '/../../' + staticdir;
if (!fs.existsSync(rootdir)) {
console.log("### HOOPS Rootdir not found rootdir=%s\n", rootdir);
process.exit();
}
// get all data/stuff of the body (POST) parameters
app.use(bodyParser.json()); // parse application/json
app.use(methodOverride('X-HTTP-Method-Override')); // override with the X-HTTP-Method-Override header in the request. simulate DELETE/PUT
// This handle should contain enough for application logic
var serverHandle = {
app : app, // Express server
config: config,
trace: config.DBG_LVL > 0 ? trace : function(){/*empty function */}
};
// set the static files location /public/img will be /img for users
app.use(express.static(rootdir));
// Load Mock APIs
var apirest = new RestAPI(serverHandle);
app.get(config.URLBASE, function (req, res) {
console.log ("Angular OPA %s", req.originalUrl);
res.sendfile(config.URLBASE +"index.html", {root: rootdir});
});
// rewrite requested URL to include Angular hashPrompt and set session flag for RestAPI
app.get(config.URLBASE + '*', function(req, res) {
// Warning redirect should be under exact "/opa/#!page" or a redirect to home will be done
var redirect=config.URLBASE + '#!' + req.originalUrl.substring(config.URLBASE.length);
res.redirect(redirect);
console.log ("Redirect to: ", redirect);
});
// start app ===============================================
app.listen(config.EXPRESS_PORT, config.EXPRESS_HOST);
console.log('Server Listening http://%s:%d (rootdir=%s)', config.EXPRESS_HOST, config.EXPRESS_PORT, rootdir);
|