74 lines
2.3 KiB
JavaScript
Executable File
74 lines
2.3 KiB
JavaScript
Executable File
var express = require('express');
|
|
var path = require('path');
|
|
var bodyParser = require('body-parser');
|
|
var fs = require('fs');
|
|
var moment = require('moment');
|
|
var routes_api = require('./routes_api');
|
|
var routes_default = require('./routes_default');
|
|
var app = express();
|
|
|
|
//
|
|
// Override default log to terminal and/or to file
|
|
//
|
|
var log_file = fs.createWriteStream(__dirname + '/logs/app.log', {flags : 'a'});
|
|
var log_stdout = process.stdout;
|
|
var now = moment(new Date()).format('MMMM Do YYYY, h:mm:ss a');
|
|
console.log = function(msg){
|
|
log_file.write(require('util').format( '[' + now +'] ' + msg) + '\n');
|
|
// Uncomment if you want screen output
|
|
log_stdout.write(require('util').format( '[' + now +'] ' + msg) + '\n');
|
|
};
|
|
|
|
// Read all app settings
|
|
var settings = require('./config.json');
|
|
app.set('secretkey', settings.secretkey);
|
|
app.set('webPort', settings.webPort);
|
|
|
|
//Vangt alle exceptions af, proces moet wel opnieuw gestart worden.
|
|
process.on('uncaughtException', function (err) {
|
|
log_file.write(require('util').format( '[' + now +'] '+ err.stack) + '\n');
|
|
// Uncomment als je ook naar scherm wilt loggen
|
|
log_stdout.write(require('util').format( '[' + now +'] '+ err.stack) + '\n');
|
|
});
|
|
|
|
//
|
|
app.use(bodyParser.urlencoded({ extended:true }));
|
|
app.use(bodyParser.json());
|
|
|
|
// Middelware, voor alle /api/* request
|
|
app.all('*', function(req, res, next)
|
|
{
|
|
// Log alle request
|
|
console.log( req.method + " " + req.url) ;
|
|
next();
|
|
});
|
|
|
|
// Middelware, voor alle /api/* request
|
|
app.all('/api/*', function(req, res, next)
|
|
{
|
|
// Set respons header (geen idee of dit compleet is)
|
|
res.header("Access-Control-Allow-Origin","*");
|
|
res.header("Access-Control-Allow-Methods","GET,PUT,POST,DELETE,OPTIONS");
|
|
res.header("Access-Control-Allow-Headers","X-Requested-With,Content-type,Accept,X-Access-Token,X-Key");
|
|
|
|
// Set response contenttype
|
|
res.contentType('application/json');
|
|
|
|
next();
|
|
});
|
|
|
|
// Middleware statische bestanden (HTML, CSS, images)
|
|
app.use(express.static(__dirname + '/public'));
|
|
|
|
// Routing with versions
|
|
app.use('/', routes_default);
|
|
// Routing with versions
|
|
app.use('/api', routes_api);
|
|
|
|
|
|
// Start server
|
|
var port = process.env.PORT || app.get('webPort');
|
|
var server = app.listen( port , function() {
|
|
console.log('Listening server on port ' + server.address().port );
|
|
});
|