Files
miniproject_osl_nodejs/app.js
T
2016-04-01 14:09:55 +00:00

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 );
});