wise-web-client
Version:
Based on Spine MVC framework
94 lines (80 loc) • 2.61 kB
JavaScript
var $ = require('./lib/dollar').$,
express = require("express"),
flash = require('connect-flash'),
session = require('express-session'),
bodyParser = require('body-parser'),
RedisStore = require('connect-redis')(session),
proxy = require('./lib/proxy'),
fs = require('fs'),
https = require('https'),
http = require('http'),
server = express();
/*
* load common components
*/
require('./lib/allLoader').loadDollar();
// in production enviroment, use minified resources
if ($('env') === 'production') {
server.all(/^\/|^\/(font|css|img|js)/, require('./lib/middleware'),
express["static"](__dirname + "/../production")
);
} else {
server.all(/^\/|^\/(font|css|img|js)/, require('./lib/middleware'),
express["static"](__dirname + "/../public")
);
}
// port env settings into client
server.get('/config.json', function(req, res) {
res.json($('config').CLIENT_CONFIG);
});
//server.use(express["static"](__dirname + "/../public"));
server.use(require('serve-favicon')(__dirname + '/../public/img/favicon.ico'));
// // csrf token
// server.dynamicHelpers({
// token: function(req, res) {
// return req.session._csrf;
// }
// });
/*
* Proxy to restful api and oauth server
*/
server.use(proxy.apiProxy($('config').API_HOST, $('config').API_PORT));
server.use(proxy.authProxy($('config').AUTH_HOST, $('config').AUTH_PORT));
server.use(bodyParser.urlencoded({
extended: false
}));
server.use(bodyParser.json());
server.use(require('cookie-parser')($('config').COOKIE_PASS));
//server.use(express.csrf());
server.use(flash());
server.use(require('method-override')());
server.use(session({
store: new RedisStore({
host: $('config').REDIS_HOST,
port: $('config').REDIS_PORT,
db: $('config').REDIS_SESSION_DB,
pass: $('config').REDIS_PASS
}),
secret: $('config').COOKIE_PASS,
resave: false,
saveUninitialized: true
}));
// development only
if ('development' == server.get('env')) {
server.use(require('morgan')('combined'));
server.use(require('errorhandler')({
dumpExceptions: true,
showStack: true
}));
}
server.set('title', $('config').TITLE);
var options = {
key: fs.readFileSync(__dirname + '/certs/privatekey.pem'),
cert: fs.readFileSync(__dirname + '/certs/certificate.pem')
};
// SERVER
// ======
// Start Node.js Server
//https.createServer(options, server).listen($('config').PORT);
server.listen($('config').PORT);
$('logger').info('Please go to http://localhost:' + $('config').PORT + ' to run WISE FE');