mirror of
https://github.com/Febbweiss/CloudBudget.git
synced 2026-03-04 14:25:39 +00:00
73 lines
2.3 KiB
JavaScript
73 lines
2.3 KiB
JavaScript
// modules
|
|
var express = require('express'),
|
|
app = express(),
|
|
bodyParser = require('body-parser'),
|
|
methodOverride = require('method-override'),
|
|
morgan = require('morgan'),
|
|
errorHandler = require('errorhandler'),
|
|
FileStreamRotator = require('file-stream-rotator'),
|
|
fs = require('fs'),
|
|
mongoose = require('mongoose');
|
|
|
|
//config
|
|
var db = require('./config/db')[process.env.NODE_ENV],
|
|
server = require('./config/server')[process.env.NODE_ENV],
|
|
logDir = __dirname + '/logs';
|
|
|
|
fs.existsSync(logDir) || fs.mkdirSync(logDir);
|
|
|
|
var accessLogStream = FileStreamRotator.getStream({
|
|
filename : logDir + '/access-%DATE%.log',
|
|
frequency : 'daily',
|
|
verbose : false,
|
|
date_format: 'YYYY-MM-DD'
|
|
});
|
|
|
|
mongoose.connect(db.url);
|
|
|
|
/** Hack to load Models before routing **/
|
|
var models_path = __dirname + '/app/models'
|
|
fs.readdirSync(models_path).forEach(function (file) {
|
|
if (~file.indexOf('.js')) require(models_path + '/' + file)
|
|
})
|
|
|
|
switch(process.env.NODE_ENV) {
|
|
case 'development' :
|
|
app.use(morgan('dev'));
|
|
break;
|
|
case 'production' :
|
|
app.use(morgan('combined', {stream: accessLogStream}));
|
|
break;
|
|
}
|
|
|
|
app.use(bodyParser.json());
|
|
app.use(bodyParser.json({type: 'application/vnd.api+json'}));
|
|
app.use(bodyParser.urlencoded({extended: true}));
|
|
app.use(methodOverride('X-HTTP-Method-Override'));
|
|
app.use(express.static(__dirname + '/public'));
|
|
app.use(errorHandler(server.errorHandlerOptions));
|
|
app.use(function(req, res, next) {
|
|
res.header("Access-Control-Allow-Origin", "*");
|
|
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
|
|
res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
|
|
next();
|
|
});
|
|
|
|
|
|
require('./app/routes')(app);
|
|
|
|
this.app = app;
|
|
this.server = server;
|
|
|
|
process.title = 'CloudBudget';
|
|
|
|
exports.listen = function () {
|
|
if( process.env.NODE_ENV !== 'test' ) {
|
|
console.log('Server running in ' + process.env.NODE_ENV + ' mode on port ' + this.server.port );
|
|
}
|
|
return this.app.listen.apply(this.app, [this.server.port]);
|
|
};
|
|
|
|
exports.close = function (callback) {
|
|
this.app.close.apply(callback);
|
|
}; |