Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Module dependencies.
- */
- exports.server = function(config) {
- var port = config && config.hasOwnProperty('port') ? config.port : 3007;
- var dbName = config && config.hasOwnProperty('dbName') ? config.dbName : 'full';
- var sessionDb = config && config.hasOwnProperty('sessionDb') ? config.sessionDb : 'adminSession';
- var dbHost = config && config.hasOwnProperty('dbHost') ? config.dbHost : 'mongodb://localhost/';
- var express = require('express');
- //database connection
- var mongoose = require('mongoose');
- require("./app.gen/schema/metadataIndex");
- var __ = require('underscore');
- __.mixin(require('underscore.string'));
- app = module.exports = express.createServer();
- mongoStore = require('connect-mongo');
- // Configuration
- app.configure(function() {
- // app.use(express.logger({ format: '\x1b[32m:method\x1b[0m \x1b[33m:url\x1b[0m :response-time ms' }))
- app.set('views', __dirname + '/app');
- app.set('view engine', 'ejs');
- app.register('.js', require('ejs'));
- app.register('.html', require('ejs'));
- app.use(express.bodyParser());
- app.use(express.methodOverride());
- app.use(express.cookieParser());
- app.use(express.session({
- secret: 'your secret here',
- store: new mongoStore({
- db: sessionDb
- }),
- cookie: {
- maxAge: 1 * 24 * 3600 * 1000
- }
- }));
- app.use(function(req, res, next) {
- var date = new Date();
- if (!req.session.user_id) {
- if (req.session.last_logout_time) {
- console.log("*", "\x1b[32m" + 'last_logout_time', ":", req.session.last_logout_time, "\x1b[0m");
- } else {
- console.log("*", "\x1b[31m" + "Session user_id was lost by undefined reason!" + "\x1b[0m");
- }
- }
- console.log(date.toGMTString() + " [user_id=" + req.session.user_id + "]:", "\x1b[32m" + req.method, "\x1b[33m" + req.url + "\x1b[0m");
- next();
- });
- app.use(app.router);
- app.use(express.static(__dirname + '/public'));
- app.set('view options', {
- layout: false
- });
- });
- process.on('uncaughtException', function(err) {
- console.log('-----|SERVER ERROR|---------------------------------------');
- console.log('Exception: ' + err);
- console.log('Stack', err.stack);
- console.log('----------------------------------------------------------');
- });
- app.configure('development', function() {
- app.use(express.errorHandler({
- dumpExceptions: true,
- showStack: true
- }));
- });
- app.configure('production', function() {
- app.use(express.errorHandler());
- });
- // h2e4
- var h2e4 = require(__dirname + '/lib/h2e4.js');
- h2e4.init(app, 'Application.html', function(req, res, next) {
- console.log('* Username: ' + req.session.user);
- console.log('* Profile: ' + req.session.profile);
- if (req.session.user_id && req.session.profile) {
- req.session.last_logout_time = undefined;
- next();
- } else {
- res.redirect('/logout');
- }
- });
- // Routes
- app.get('/login', function(req, res) {
- res.render('Login.html');
- });
- app.get('/logout', function(req, res) {
- console.log('logout');
- delete req.session.user_id;
- delete req.session.profile;
- delete req.session.user;
- req.session.last_logout_time = (new Date()).toGMTString();
- res.redirect('/login');
- });
- var twoStep = require('twostep');
- RelationCache = {};
- ThingsChilds = {};
- ThingsParents = {};
- ThingsForQB = {};
- ThingsSourceTree = {};
- ThingsCollections = {};
- $prop_etalon_4_codegen = null;
- twoStep(
- function initDb() {
- this.pass(mongoose.createConnection('mongodb://localhost/full'));
- }, twoStep.throwIfError(function InitInheritanceTree(err, db) {
- this.pass(db);
- var cb = this.slot();
- console.log('Inheritance Tree ... ');
- require('./lib/inheritanceTree').getInheritanceTree(db, function(err, cacheChilds, cacheParents, sourceTree, collections) {
- ThingsChilds = cacheChilds;
- ThingsParents = cacheParents;
- ThingsSourceTree = sourceTree;
- ThingsCollections = collections;
- console.log('loaded...');
- cb();
- });
- }), twoStep.throwIfError(function InitThingForQB(err, db) {
- this.pass(db);
- var cb = this.slot();
- require('./lib/thingsForQBCache').getCachedThingForQB(db, function(err, cache) {
- ThingsForQB = cache;
- console.log('things for QB Cache loaded...');
- cb();
- });
- }), twoStep.throwIfError(function InitRelationCache(err, db) {
- this.pass(db);
- var cb = this.slot();
- require('./lib/relationCache').getCachedRelations(db, function(err, cache) {
- RelationCache = cache;
- console.log('Relations Cache loaded...');
- cb();
- });
- }), twoStep.throwIfError(function(err, db) {
- db.close();
- if (!err) {
- app.listen(port);
- console.log("Express server listening on port %d in %s mode", port, app.settings.env);
- } else throw err;
- }));
- };
- // var trycatch = require('trycatch');
- // trycatch(function init() {
- // },
- // function onerror(err) {
- // debugger
- // console.log("This is a scoped error handler!\n", err.stack);
- // }
- // );
Advertisement
Add Comment
Please, Sign In to add comment