74 lines
1.9 KiB
JavaScript
74 lines
1.9 KiB
JavaScript
const config = require('./settings/config.js');
|
|
require('app-module-path').addPath(config.BASE_DIR);
|
|
require('app-module-path').addPath(config.UTILS_DIR);
|
|
|
|
const express = require('express');
|
|
const pug = require('pug');
|
|
const http = require('http');
|
|
const path = require('path');
|
|
const log = require('log');
|
|
|
|
function main() {
|
|
|
|
let app = express();
|
|
let http = require('http').Server(app);
|
|
|
|
let bodyParser = require('body-parser');
|
|
let session = require('cookie-session');
|
|
let cookieParser = require('cookie-parser');
|
|
|
|
app.set('view engine', 'pug');
|
|
app.set('trust proxy', 1);
|
|
|
|
app.use(cookieParser(config.SECRET_KEY));
|
|
app.use(session({keys:[config.SECRET_KEY]}));
|
|
|
|
// Log request and time to answer
|
|
app.use(function(req, res, next) {
|
|
let start = Date.now();
|
|
res.on('finish', function() {
|
|
log.request(req, res, Date.now() - start);
|
|
});
|
|
res.locals.session = req.session;
|
|
next();
|
|
});
|
|
|
|
// Give app access to all urls
|
|
app.use(require('create-url'));
|
|
|
|
// Load controllers
|
|
require('controllers')(app);
|
|
|
|
// Static files
|
|
app.use('/static', express.static(config.STATIC_DIR));
|
|
|
|
// When route not found, raise not found
|
|
app.use(function(req, res) {
|
|
res.setHeader('Content-Type', 'text/html');
|
|
|
|
res.render('404.pug', res.locals, function(err, result) {
|
|
if (err)
|
|
console.log(err);
|
|
res.send(result);
|
|
});
|
|
});
|
|
|
|
http.listen(config.PORT, config.LISTEN_ADDRESS, function() {
|
|
log.ready(
|
|
'Now listening ' + config.LISTEN_ADDRESS +
|
|
':' + config.PORT
|
|
);
|
|
});
|
|
|
|
// On sigint, stop the server
|
|
process.on('SIGINT', function() {
|
|
process.stdout.write('\r');
|
|
log.debug('Stopping server...');
|
|
process.exit(0);
|
|
});
|
|
}
|
|
|
|
if (require.main === module) {
|
|
main();
|
|
}
|