Beispiel #1
0
db.on('error',function(err){
    console.log('DB error : ', err);
});

//view setting
app.set("view engine", 'ejs');


//set middlewares
app.use(express.static(path.join(__dirname, 'public')));
app.use(badyParser.json());
app.use(badyParser.urlencoded({extended:true}));
app.use(methodOverride("_method"));
app.use(flash());
app.use(session({secret:'MySecret'}));


//passport
var passport = require('./config/passport');
app.use(passport.initialize());
app.use(passport.session());

// routes
app.use('/', require('./routes/home'));
app.use('/users', require('./routes/users'));
app.use('/posts', require('./routes/posts'));



//start server
Beispiel #2
0
var express = require('express');
var bodyParser = require('body-parser');
var session = require('express-session');

var app = express();
app.use(session({secret: 'something awesome'}));
app.use(bodyParser.urlencoded({ extended:false }));

var isAuthenticated = function(req, res, next) {
    if(req.session.logged_in === true) {
        return next();
    }
    else {
        return res.redirect('/login');
    }
};

app.post('/login', function(req, res) {
    if(req.body.username == 'cahlan' && req.body.password == 'test') {
        req.session.logged_in = true;
        return res.redirect('/');
    }
    else {
        return res.redirect('/login?error=bad_password');
    }
});

app.get('/', isAuthenticated, function(req, res) {
    res.sendFile(__dirname+'/public/index.html');
});
Beispiel #3
0
var io = require('socket.io').listen(server);


// other config

app.use(express.static(__dirname + '/public'));
app.use(morgan('dev'));
app.use(methodOverride());
app.use(bodyParser.urlencoded({'extended':'true'}));
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
app.use(cookieParser());
app.use(session({
    secret: process.env.SESSION_SECRET,
    maxAge: new Date(253402300000000), // don't expire any time soon
    store: new RedisStore({client: redisClient}),
    resave: false,
    saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());


// passport config

var User = require('./app/models/user')(io);
passport.use(new LocalStrategy(User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

Beispiel #4
0
var express = require('express');  //installed
var session = require('express-session');  
var nodemailer = require("nodemailer");  // installed
var bodyParser = require('body-parser');   //installed
var passport = require('passport');  //installed
var LocalStrategy = require('passport-local').LocalStrategy  //installed
var mongoose = require('mongoose');   //installed

mongoose.connect('mongodb://localhost/PreSchool');




var app = express();
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json());
app.use(session({
	secret: 'MissKatiePreSchool2015', saveUninitialized: true, resave: true
}));
app.use(passport.initialize());
app.use(passport.session());


app.listen(9898, function(){
console.log("Express Started on Port 9898");
});
Beispiel #5
0
  },
  function(accessToken, refreshToken, profile, done) {
    console.log(profile);
  }
));


var app = express();

app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
//app.use(express.logger());
app.use(cookieParser());
app.use(bodyParser());
app.use(methodOverride());
app.use(session({ secret: '__QwerTy.bone;-__' }));
//app.use(passport.initialize());
//app.use(passport.session());
app.use(express.static(__dirname + '/public'));

app.get('/', routes.index);

['facebook']
.forEach(function(social) {
  app.get(
    '/auth/' + social,
    passport.authenticate(social),
    function(req, res) {}
  );
  app.get(
    '/auth/' + social + '/callback', 
Beispiel #6
0
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(compress());
app.use(connectAssets({
  paths: [path.join(__dirname, 'public/css'), path.join(__dirname, 'public/js')]
}));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(expressValidator());
app.use(methodOverride());
app.use(cookieParser());
app.use(session({
  resave: true,
  saveUninitialized: true,
  secret: secrets.sessionSecret,
  store: new MongoStore({ url: secrets.db, auto_reconnect: true })
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use(function(req, res, next) {
  // CSRF protection.
  if (_.contains(csrfExclude, req.path)) return next();
  csrf(req, res, next);
});
app.use(function(req, res, next) {
  // Make user object available in templates.
  res.locals.user = req.user;
  next();
});
Beispiel #7
0
sessStore.on('connect', function() {

	app.use(cookieParser());

	app.use(session({
		secret: secret,
		saveUninitialized: true,
		resave: true,
		store: sessStore
	}));

	app.use(function(req, res, next) {
		var uid = req.session.id;
		if (req.session.uid == null) {
			req.session.uid = uid;
			console.log('Anonymous user connected. Assigned uid: %s', uid);
			userStates[uid] = userStateFactory(uid).init();
		}
		next();
	});

	app.use(express.static(__dirname + '/public'));

	var userSockets = {};

	io.on('connection', function(socket) {

		cookieParser(secret, {})(socket.handshake, {}, function (parseErr) {
			var uid = socket.handshake.signedCookies['connect.sid'];
			var s = userStates[uid];
			userSockets[uid] = socket;
			var sock = function() { return userSockets[uid]; };
			if (s != null) {
				var scanProgress = s.progress('progress:scan');
				var scanListener = function(value) {
					sock().emit('scan', value);
					if (value.progress >= 100) {
						scanProgress.setValue(0, function() {
							s.scan(function(err, results) {
								sock().emit('scanResults', results);
							});
						});
					}
				};
				scanProgress.on('update', scanListener);

				var accountListener = function(value) {
					sock().emit('account', value);
				};
				s.on('account', accountListener);

				sock().on('itJobs', function(amount) { s.payForItJob(amount); });
				sock().on('scan', function() {
					scanProgress.start();
				});
				sock().on('startHacking', function(ip) {
					s.startHacking(ip);
				});
				sock().on('stopHacking', function(ip) {
					s.stopHacking(ip);
				});
				var hackingListener = function(evt) {
					sock().emit('hacking', evt);
				};
				s.on('hacking', hackingListener);
				sock().on('moveToHacking', function(ip) {
					s.moveToHacking(ip, function() {
						sock().emit('movedToHacking', ip);
					});
				});
				sock().on('removeFromHacking', function(ip) {
					s.removeFromHacking(ip, function() {
						socket.emit('removedFromHacking', ip);
					});
				});
				sock().on('disconnect', function() {
//					scanProgress.removeListener('update', scanListener);
					s.removeListener('account', accountListener)
					.removeListener('hacking', hackingListener)
					.destroy();
					delete userSockets[uid];
				});

				s.getMainState(function(err, state) {
					sock().emit('mainState', state);
				});
			}
		});
	});

	http.listen(httpPort, function() {
		console.log('listening on *:%d', httpPort);
	});
});
Beispiel #8
0
var dburl = 'mongodb://localhost/movie';
mongoose.connect(dburl);


app.set('views','./app/views/pages');
app.set('view engine','jade');
// parse application/x-www-form-urlencoded
app.use(bodyParser.json());

app.use(bodyParser.urlencoded({ 'extended': true }));
// session
app.use(cookieParser());
app.use(session({
	secret : 'movie',
	store : new mongoStore({
		url : dburl,
		collection: 'sessions'
	})
}));

if('development' === app.get('env')){
	app.set('showStackError',true);
	app.use(morgan('dev'));
	app.locals.pretty = true;
	mongoose.set('debug',true);
}

require('./config/routes')(app);

app.use(express.static(path.join(__dirname,'public')))
app.locals.moment = require('moment');
var User = require('./app/models/user');
var Links = require('./app/collections/links');
var Link = require('./app/models/link');
var Click = require('./app/models/click');

var app = express();

app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(partials());

app.use(cookieParser());
app.use(expressSession({
  key: "mysite.sid.uid.whatever",
  secret: 'secret',
  cookie: {
    maxAge: 2678400000 // 31 days
  },
}));

// Parse JSON (uniform resource locators)
app.use(bodyParser.json());
// Parse forms (signup/login)
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(__dirname + '/public'));


app.get('/', checkUser,
function(req, res) {
  res.render('index');
});
  init: function (attr) {
  
    /* attrs:
        app - express app
        config - application config data
    */

    var app = attr.app
      , config = attr.config
    ;


    // express session configuration
    // ----------------------------------------------------
    
    app.use(cookieParser(config.COOKIE_SECRET));
    
    // redis-based session
    if (config.SESSION_STORE == 'RedisStore') {

      console.log('Auth.express_config: using RedisStore for sessions.'); 
      var RedisStore = require('connect-redis')(session);

      app.use(session({
        resave: true,
        saveUninitialized: true,
        secret: config.SESSION_SECRET,
        name: config.SESSION_NAME,
        cookie: { maxAge: 86400 * 365 * 10 * 1000, path: '/' },
        store: new RedisStore({
          port: config.REDIS_SESSION_PORT,
          host: config.REDIS_SESSION_HOST,
          auth_pass: config.REDIS_SESSION_AUTH
        }),
      }));

    // mongodb-based session
    } else if (config.SESSION_STORE == 'MongoStore'){

      console.log('Auth.express_config: using connect-mongo for sessions.'); 
      var MongoStore = require('connect-mongo')(session);

      app.use(session({
        resave: true,
        saveUninitialized: true,
        secret: config.SESSION_SECRET,
        name: config.SESSION_NAME,
        cookie: { maxAge: 86400 * 365 * 10 * 1000, path: '/' },
        store: new MongoStore({
          url: config.MONGODB_SESSION_URL,
          autoReconnect: true
        })
      }));

    }

    // passport authorization configuration
    // ----------------------------------------------------
    
    app.use(passport.initialize());

    app.use(passport.session());

    // anon strategy
    //passport.use(new AnonStrategy());
    
    // google strategy
    passport.use(new GoogleStrategy({
        clientID: config.GOOGLE_CLIENT_ID,
        clientSecret: config.GOOGLE_CLIENT_SECRET,
        callbackURL: config.GOOGLE_REDIRECT_URL
      },
      function(accessToken, refreshToken, profile, cb) {
        console.log('Auth.express_config: google login with id=' + profile.id);
        //return cb(null, { googleId: profile.id });
        
        // find or create
        UserModel.findOne({ 'googleId': profile.id }, 'googleId', function (err, user) {
          
          // current user
          if (user) {
            return cb(err, user);
          
          // new user
          } else {

            // create a user
            var newUser = new UserModel({ 
              googleId: profile.id,
              name: profile.displayName,
              image_url: (profile.photos && profile.photos[0] ? profile.photos[0].value : undefined)
            });
            newUser.save(function (err, user) {
              if (err) { console.error(err); }
              return cb(err, user);
            });

          }

        }); // END find User
      }
    )); // END google strategy
 
 
    // local strategy 
    passport.use(new LocalStrategy(
      function(username, password, cb) {

        console.log('Auth.express_config: local login with username ' + username);
        
        // find or create
        UserModel.findOne({ 'localId': username }, 'localId', function (err, user) {
          
          // current user
          if (user) {
            return cb(err, user);
          
          // new user
          } else {

            // create a user
            var newUser = new UserModel({ 
              localId: username,
              name: username,
              password: Math.floor(100000000 + Math.random() * 900000000) // 9 digit random number
            });
            newUser.save(function (err, user) {
              if (err) { console.error(err); }
              return cb(err, user);
            });

          }

        }); // END find User


        User.findOne({ username: username }, function (err, user) {
          if (err) { return cb(err); }
          if (!user) { return cb(null, false); }
          if (!user.verifyPassword(password)) { return cb(null, false); }
          return cb(null, user);
        });
      }
    ));

    passport.serializeUser(function(user, done) { 
      done(null, user); 
    });
    passport.deserializeUser(function(user, done) { 
      done(null, user); 
    });

  }
Beispiel #11
0
mdb.initialize(function (err) {
    
    // Store session data in the mongo database; this is needed if we're
    // going to have multiple web servers sharing a single db
    var MongoStore = require('connect-mongo')(session);
    
    var theSession = session({
	secret: cookieSecret,
	resave: false,
	saveUninitialized: false,
	store: new MongoStore({ mongooseConnection: mdb.mongoose.connection })
    });
    
    app.use(theSession);

    console.log( "Session setup." );

passport.use(login.localStrategy(rootUrl));
passport.use(login.googleStrategy(rootUrl));
passport.use(login.twitterStrategy(rootUrl));
passport.use(login.courseraStrategy(rootUrl));
passport.use(login.ltiStrategy(rootUrl));
passport.use(login.githubStrategy(rootUrl));

// Only store the user _id in the session
passport.serializeUser(function(user, done) {
   done(null, user._id);
});

passport.deserializeUser(function(id, done) {
   mdb.User.findOne({_id: new mongo.ObjectID(id)}, function(err,document) {
       done(err, document);
   });
});

// Middleware for all environments
function addDatabaseMiddleware(req, res, next) {
    //req.db = db;

    if ('user' in req)
	res.locals.user = req.user;
    else {
	res.locals.user = req.user = {};
    }
    
    next();
}


    app.version = require('./package.json').version;

    //app.use(versionator.middleware);
    app.use('/public', express.static(path.join(__dirname, 'public')));
    app.use('/node_modules', express.static(path.join(__dirname, 'node_modules')));

    //app.locals.versionPath = versionator.versionPath;

    //console.log( versionator.versionPath('/template/test') );

    app.use(api.authenticateViaHMAC);    
    app.use(passport.initialize());
    app.use(passport.session());

    //app.get('/xake', api.authenticateViaHMAC);
    //app.get('/api/xake', api.xake);
 
    //app.put( '/activity/:commit/:path(*)', api.authenticateViaHMAC);
    app.put( '/activity/:commit/:path(*.png)', api.putFile );
    app.put( '/activity/:commit/:path(*.css)', api.putFile );
    app.put( '/activity/:commit/:path(*.js)', api.putFile );
    app.put( '/activity/:commit/:path(*.tex)', api.putFile );
    app.put( '/activity/:commit/:path(*.jpg)', api.putFile );
    app.put( '/activity/:commit/:path(*.pdf)', api.putFile );
    app.put( '/activity/:commit/:path(*.svg)', api.putFile );    

    app.put( '/activity/:commit/:path(*)', api.putActivity );
    app.put( '/course/:commit/:path(*)', api.putXourse );
    
    app.put( '/repos/:owner/:repo/git/commits/:sha', api.verifyCollaborator );
    app.put( '/repos/:owner/:repo/git/commits/:sha', api.putCommit );

    app.put( '/commits/:sha', api.putBareCommit );
    
    //app.put( '/activity/:commit/:path(*.tex)', api.authenticateViaHMAC);
    //app.put( '/activity/:commit/:path(*.tex)', api.putTex );
    
    app.use(login.guestUserMiddleware);
    app.use(addDatabaseMiddleware);

    
    // Middleware for development only
    if ('development' == app.get('env')) {
        app.use(errorHandler());
    }

    // Setup routes.

    // TODO: Move to separate file.
    app.get('/users/xarma', score.getXarma);
    app.get('/users/xudos', score.getXudos);
    app.post('/users/xarma', score.postXarma);
    app.post('/users/xudos', score.postXudos);

    // Requires the rawBody middleware above
    github.secret = process.env.GITHUB_WEBHOOK_SECRET;
    app.post('/github', github.github);

    app.get('/', routes.index);

    app.get('/users/me', user.getCurrent);
    //app.get('/users/profile', user.currentProfile);
    //app.get('/users/:id/profile', user.profile);
    app.get('/users/:id', user.get);
    app.get('/users/:id/edit', user.edit);
    app.post('/users/:id', user.update);

    app.get('/users/', user.index);
    app.get('/users/page/:page', user.index); // pagination in Mongo is fairly slow
    
    app.delete('/users/:id/google', function( req, res ) { user.deleteLinkedAccount( req, res, 'google' ); } );
    app.delete('/users/:id/coursera', function( req, res ) { user.deleteLinkedAccount( req, res, 'coursera' ); } );
    app.delete('/users/:id/github', function( req, res ) { user.deleteLinkedAccount( req, res, 'github' ); } );
    app.delete('/users/:id/twitter', function( req, res ) { user.deleteLinkedAccount( req, res, 'twitter' ); } );

    app.put('/users/:id/secret', function( req, res ) { user.putSecret( req, res ); } );

    // BADBAD: this should probably be a PUT since it changes state
    app.get('/users/:id/courses/:owner/:repo', function( req, res ) { user.courses( req, res ); } );
    
    app.get( '/course/calculus-one/', function( req, res ) { res.redirect('/about/plans'); });
    app.get( '/course/calculus-one', function( req, res ) { res.redirect('/about/plans'); });
    app.get( '/course/calculus-two/', function( req, res ) { res.redirect('/about/plans'); });
    app.get( '/course/calculus-two', function( req, res ) { res.redirect('/about/plans'); });
    app.get( '/course/multivariable/', function( req, res ) { res.redirect('/about/m2o2c2'); });
    app.get( '/course/multivariable', function( req, res ) { res.redirect('/about/m2o2c2'); });

    //app.get('/course/', course.index );
    app.get( '/course', function( req, res ) { res.redirect(req.url + '/'); });
    app.get( '/courses', function( req, res ) { res.redirect('/course/'); });
    app.get( '/courses/', function( req, res ) { res.redirect('/course/'); });

    app.get( '/course/:commit([0-9a-fA-F]+)/', course.xourseFromCommit, course.tableOfContents );
    
    app.get( '/course/:username/:repository/', course.xourseFromUserAndRepo, course.tableOfContents );
    
    app.get( '/course/:username/:repository/:branch/', course.xourseFromUserAndRepo, course.tableOfContents );

    var appXimera = function( regexp, callback ) {
	app.get( '/:noun(course|activity)/:commit([0-9a-fA-F]+)/:path(' + regexp + ')', course.objectFromCommit, callback );
	app.get( '/:noun(course|activity)/:username/:repository/:path(' + regexp + ')', course.objectFromUserAndRepo, callback );
	app.get( '/:noun(course|activity)/:username/:repository/:branch/:path(' + regexp + ')', course.objectFromUserAndRepo, callback );
    };

    appXimera( '*.tex', course.source );

    // SVG files will only be rendered if they are sent with content type image/svg+xml
    appXimera( '*.svg', course.file('image/svg+xml') );
    appXimera( '*.png', course.file('image/png') );
    appXimera( '*.pdf', course.file('image/pdf') );
    appXimera( '*.jpg', course.file('image/jpeg') );
    appXimera( '*.js',  course.file('text/javascript') );
    appXimera( '*.css', course.file('text/css') );                

    appXimera( '*', course.activity );

    app.get( '/course/:commit([0-9a-fA-F]+)$' ,function( req, res ) { res.redirect(req.url + '/'); });
    app.get( '/course/:username/:repository', function( req, res ) { res.redirect(req.url + '/'); });
    app.get( '/course/:username/:repository/:branch', function( req, res ) { res.redirect(req.url + '/'); });
    
    app.get( '/statistics/:commit/:hash/answers', course.answers );
    app.get( '/statistics/:commit/:hash/successes', course.successes );

    //app.head( '/activity/:commit/:path(*.png)', course.imageHead );
    //app.head( '/activity/:commit/:path(*.jpg)', course.imageHead );
    //app.head( '/activity/:commit/:path(*.pdf)', course.imageHead );
    //app.head( '/activity/:commit/:path(*.svg)', course.imageHead );    
    app.head( '/activity/:commit/:path(*)', course.activityByHashHead );
    
    // TinCan (aka Experience) API
    app.post('/xAPI/statements', tincan.postStatements);
    
    // Instructor paths
    app.get(/^\/instructor\/course\/(.+)\/activity\/(.+)\/$/, instructor.instructorActivity );
    app.get('/instructor/activity-analytics/:id', instructor.activityAnalytics);

    // Coursera login.
    app.get('/auth/coursera',
            passport.authenticate('oauth'));
    app.get('/auth/coursera/callback',
            passport.authenticate('oauth', { successRedirect: '/just-logged-in',
                                   failureRedirect: '/auth/coursera'}));

    // Google login.
    app.get('/auth/google', passport.authenticate('google-openidconnect'));
    app.get('/auth/google/callback',
            passport.authenticate('google-openidconnect', { successRedirect: '/just-logged-in',
							    failureRedirect: '/auth/google'}));


    // Permit local logins when on a test machine
    if (app.locals.deployment != 'production') {
	app.post('/auth/local', 
		 passport.authenticate('local', { failureRedirect: '/' }),
		 function(req, res) {
		     res.redirect('/');
		 });
    }
    
    // Twitter login.
    app.get('/auth/twitter', passport.authenticate('twitter'));
    app.get('/auth/twitter/callback',
            passport.authenticate('twitter', { successRedirect: '/just-logged-in',
					       failureRedirect: '/auth/twitter'}));    

    // GitHub login.
    app.get('/auth/github', passport.authenticate('oauth2'));
    app.get('/auth/github/callback',
            passport.authenticate('oauth2', { successRedirect: '/just-logged-in',
				              failureRedirect: '/',
					      failureFlash: true}));

    // LTI login
    app.post('/lti', passport.authenticate('lti', { successRedirect: '/just-logged-in',
						    failureRedirect: '/'}));
    app.get('/logout', function (req, res) {
        req.logout();
        res.redirect('/');
    });

    app.get('/just-logged-in', function (req, res) {
        if (req.user.course) {
	    console.log( "course = ", req.user.course);
	    res.redirect( req.user.course );
	} else {
	    if (req.user.lastUrlVisited && (req.user.lastUrlVisited != "/") && (!(req.user.lastUrlVisited.match(/\.svg$/)))) {
		console.log( "lastUrlVisited = ", req.user.lastUrlVisited);
		res.redirect(req.user.lastUrlVisited);
	    } else
		res.redirect('/');
	}
    });

    app.get('/mailing-list', function( req, res ) {
        fs.appendFile( 'emails.txt', req.query['email'] + "\n", function(err) { return; });
        res.send(200);
    });

    app.get('/about', about.index);
    app.get('/about/team', about.team);
    app.get('/about/workshop', about.workshop);
    app.get('/about/contact', about.contact);
    app.get('/about/faq', about.faq);
    app.get('/about/who', about.who);
    app.get('/about/plans', about.plans);
    app.get('/about/xarma', about.xarma);
    app.get('/about/xudos', about.xudos);
    app.get('/about/m2o2c2', about.m2o2c2);
    app.get('/about/supporters', function( req, res ) { res.redirect('/about/support'); });
    app.get('/about/support', about.support);

    //app.get('/template/:templateFile', template.renderTemplate);
    //app.get('/template/forum/:templateFile', template.renderForumTemplate);

    var state = require('./routes/state.js')(null);
    app.get('/state/:activityHash', state.get);
    app.put('/state/:activityHash', state.put);
    app.delete('/state/:activityHash', state.remove);
    app.put('/completion/:activityHash', state.completion);

    app.get('/users/:id/completions', state.getCompletions);
    app.get('/commits/:hash/activities', course.getActivitiesFromCommit );
    
    app.get('/image/:hash', mongoImage.get);


    app.locals.moment = require('moment');
    app.locals._ = require('underscore');
    app.locals.deployment = process.env.DEPLOYMENT;

    // Setup blogs
    var Poet = require('poet')
    var poet = Poet(app, {
        posts: './blog/',  // Directory of posts
        postsPerPage: 5,     // Posts per page in pagination
        readMoreLink: function (post) {
            // readMoreLink is a function that
            // takes the post object and formats an anchor
            // to be used to append to a post's preview blurb
            // and returns the anchor text string
            return '<a href="' + post.url + '">Read More &raquo;</a>';
        },
        readMoreTag: '<!--more-->', // tag used to generate the preview. More in 'preview' section

        routes: {
            '/blog/post/:post': 'blog/post',
            '/blog/page/:page': 'blog/page',
            '/blog/tag/:tag': 'blog/tag',
            '/blog/category/:category': 'blog/category'
         }
    });

    app.get( '/blog', function ( req, res ) { res.render( 'blog/index' ); });

    poet.init().then( function() {
    // Start HTTP server for fully configured express App.
        var server = http.createServer(app);

	var ios = require('socket.io-express-session');
	var io = require('socket.io')(server);
	io.use(ios(theSession, cookieParser(cookieSecret)));
	
	// Setup forum rooms
	/*
	var forum = require('./routes/forum.js')(socket);
	app.post('/forum/upvote/:post', forum.upvote);
	app.post('/forum/flag/:post', forum.flag);
	app.get(/\/forum\/(.+)/, forum.get);
	app.post(/\/forum\/(.+)/, forum.post);
	app.put('/forum/:post', forum.put);
	app.delete('/forum/:post', forum.delete);
	*/

	if(!module.parent){
            server.listen(app.get('port'), function(stream){
		console.log('Express server listening on port ' + app.get('port'));
            });		    
	}

	
	io.on('connection', function (socket) {
	    // join to room and save the room name
	    socket.on('join room', function (room) {
		socket.join(room);
	    });
	    
	    socket.on('send', function (data) {
		socket.sockets.emit('message', data);
	    });

	    socket.on('activity', function (activityHash) {
		var userId = socket.handshake.session.guestUserId;
		if (socket.handshake.session.passport) {
		    userId = socket.handshake.session.passport.userId || userId;
		}
		socket.join(activityHash + '/' + userId);
	    });

	    /*
	    socket.on('persistent-data', function (data) {
		var userId = socket.handshake.session.guestUserId;
		if (socket.handshake.session.passport) {
		    userId = socket.handshake.session.passport.userId || userId;
		}
		
		if (socket.handshake.session.userdata)
		    socket.handshake.session.userdata = socket.handshake.session.userdata + 1;
		else
		    socket.handshake.session.userdata = 0;

		socket.to(data.activityHash + '/' + userId).emit('persistent-data', data);
	    });
	    */
	});
	
	// If nothing else matches, it is a 404
	app.use(function(req, res, next){
            res.render('404', { status: 404, url: req.url });
	});
	
    
});

    });
Beispiel #12
0
module.exports = function(app) {
  var env = app.get('env');

  app.set('views', config.root + '/server/views');
  app.engine('html', require('ejs').renderFile);
  app.set('view engine', 'html');
  app.use(compression());
  app.use(bodyParser.urlencoded({ extended: false }));
  app.use(bodyParser.json());
  app.use(methodOverride());
  app.use(cookieParser());

  // Persist sessions with mongoStore / sequelizeStore
  // We need to enable sessions for passport-twitter because it's an
  // oauth 1.0 strategy, and Lusca depends on sessions
  app.use(session({
    secret: config.secrets.session,
    saveUninitialized: true,
    resave: false,
    store: new mongoStore({
      mongooseConnection: mongoose.connection,
      db: 'easy-stock'
    })
  }));

  /**
   * Lusca - express server security
   * https://github.com/krakenjs/lusca
   *
      if ('test' !== env) {
        app.use(lusca({
          csrf: {
            angular: true
          },
          xframe: 'SAMEORIGIN',
          hsts: {
            maxAge: 31536000, //1 year, in seconds
            includeSubDomains: true,
            preload: true
          },
          xssProtection: true
        }));
      }
   */

  app.set('appPath', path.join(config.root, 'client'));

  if ('production' === env) {
    app.use(favicon(path.join(config.root, 'client', 'favicon.ico')));
    app.use(express.static(app.get('appPath')));
    app.use(morgan('dev'));
  }

  if ('development' === env) {
    app.use(require('connect-livereload')());
  }

  if ('development' === env || 'test' === env) {
    app.use(express.static(path.join(config.root, '.tmp')));
    app.use(express.static(app.get('appPath')));
    app.use(morgan('dev'));
    app.use(errorHandler()); // Error handler - has to be last
  }
};
Beispiel #13
0
app.use(sass({
  src: path.join(__dirname, 'public'),
  dest: path.join(__dirname, 'public'),
  sourceMap: true
}))
app.use(logger('dev'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.use(expressValidator())
app.use(methodOverride())
app.use(cookieParser())
app.use(session({
  resave: true,
  saveUninitialized: true,
  secret: process.env.SESSION_SECRET,
  store: new MongoStore({
    url: process.env.MONGODB || process.env.MONGOLAB_URI,
    autoReconnect: true
  })
}))
app.use(passport.initialize())
app.use(passport.session())
app.use(flash())
app.use(function (req, res, next) {
  if (req.path === '/api/upload') {
    next()
  } else {
    lusca.csrf()(req, res, next)
  }
})
app.use(lusca.xframe('SAMEORIGIN'))
Beispiel #14
0
rootRequire('config/environments')(app);
app.set('io', require('socket.io').listen(httpServer));

var conString = process.env.DATABASE_URL || "postgres://postgres@localhost/forum";

var Sequelize = require('sequelize');
var sequelize = new Sequelize(conString);

app.use(compression());
app.use(cookieParser());
app.use(session({
  store: new pgSession({
    pg: pg,
    conString: conString,
    tableName: 'session'
  }),
  secret: app.get('sessionSecret') || 'w!** *1*h',
  cookie: { maxAge: 365 * 24 * 60 * 60 * 1000 }, // 1 year
  resave: false,
  saveUninitialized: false
}));
rootRequire('lib/authentication');
app.use(passport.initialize());
app.use(passport.session());

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(multer());

rootRequire('config/routes')(app, passport);
Beispiel #15
0
module.exports = function( app ) {
    //Compresses the document
    app.use ( compression({
        threshold :512
    }));
   /* // Static files middleware
     app.use(express.static(config.root + '/public'));
     */

    // bodyParser should be above methodOverride
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: true }));

    app.use(cookieParser(config.sessionSecret));
    app.use(cookieSession({secret : config.sessionSecret, cookie :{maxAge :1}}));

    app.use(session({
        secret  : config.sessionSecret,
        proxy : true,
        resave : true,
        saveUninitialized : true,
        cookie: {
            maxAge  : 360*5//10800 * 1000//3 Hour
            // expires : new Date(Date.now() + 300000) //1 Hour
        }
    }));
    // use passport session
    app.use(passport.initialize());
    app.use(passport.session());

    utilities.walk('./routes/').forEach(function(routePath) {
        require(path.resolve(routePath))(app);
    });

    //For error Handling, always keep in the end

    /**
     * Error handling
     */

//    app.use(function (err, req, res, next) {
//        // treat as 404
//        if (err.message
//            && (~err.message.indexOf('not found')
//                || (~err.message.indexOf('Cast to ObjectId failed')))) {
//            return next();
//        }
//        console.error(err.stack);
//        // error page
//        res.status(500);
//        res.send({
//            "status" : "error",
//            "result" : err.message
//        });
//    });
//
//    // assume 404 since no middleware responded
//    app.use(function (req, res, next) {
//        res.status(404).send({
//            "status" : "error",
//            "result" : "404"
//        });
//    });
};
Beispiel #16
0
// Enable logging requests to console in development mode only
if (app.get('env') == 'development')
  app.use(logger('dev'));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(expressValidator());
app.use(methodOverride());
app.use(cookieParser());
app.use(session({
  resave: true,
  saveUninitialized: true,
  secret: config.secrets.sessionSecret,
  store: new MongoStore({
    url: config.secrets.db,
    auto_reconnect: true
  }),
  cookie: {
    maxAge: 4 * week
  }
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use(function(req, res, next) {
  // CSRF protection
  // Skip CSRF protection for white listed URLs
  if (_.contains(csrfExclude, req.path)) return next();
  // Skip CSRF protection for calls to the API (valid API Key required instead)
  if ((/^\/api/).test(req.path)) {
    res.locals._csrf = "undefined";
Beispiel #17
0
    helpers:{
        section:function(name,options){
            if(!this._sections) this._sections={};
            this._sections[name]=options.fn(this);
            return null;
        }
    }
});

app.engine('handlebars',handlebars.engine);
//app.use(cookieParser());
app.use(session({
    genid:function(req){
      return uuid.v1();
    },
    secret:'keyboard cat',
    resave:false,
    saveUnitialized:true,
    cookie:{secure:true, maxAge:60000}
}));
app.use(compression());
app.use(express.static(__dirname+'/public',{maxAge:86400000}));
app.set('view engine','handlebars');
app.set('port',process.env.PORT || 3000);
app.disable('x-powered-by');
app.set('etag',function(body,encoding){
   return require('crypto').createHash('md5').update(body).digest('hex');
});


app.use(function (req,res,next) {
Beispiel #18
0
  privateKey: "2fe365ec06cdba5e0b5933c5ccb4989a"
});

var mongoUri = process.env.MONGOLAB_URI || 'mongodb://localhost/thesortclub';
mongoose.connect(mongoUri);

require('./config/passport')(passport);

app.get("/client_token", function (req, res) {
  gateway.clientToken.generate({}, function (err, response) {
    res.send(response.clientToken);
  });
});

app.use(cookieParser('keyboard cat'));
app.use(session({ cookie: { maxAge: 60000 }}));
app.use(flash());
app.set('view engine', ejs)

app.use(function(req, res, next) {
    res.locals.messages = req.flash();
    next();
});


app.use(methodOverride(function(req, res){
  if (req.body && typeof req.body === 'object' && '_method' in req.body) {
    var method = req.body._method
    delete req.body._method
    return method
  }
Beispiel #19
0
      at: 'finished',
      status: res.statusCode,
      method: req.method,
      url: req.originalUrl,
    })
  })

  next()
})

app.use(cookieParser(process.env.COOKIE_SECRET))
app.use(session({
  secret: process.env.COOKIE_SECRET,
  cookie: {
    secure: useSSL,
  },
  store: KnexSessionStore,
  resave: false,
  saveUninitialized: false,
}))
app.use(passport.initialize())
app.use(passport.session())

passport.use(new EveOnlineStrategy({
    clientID: process.env.EVE_OAUTH_CLIENT_ID,
    clientSecret: process.env.EVE_OAUTH_SECRET_KEY,
    callbackURL: process.env.CANONICAL_URL + process.env.EVE_OAUTH_CALLBACK,
  },
  function(characterInformation, done) {
    debug('eve:auth', characterInformation)
Beispiel #20
0
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');


// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser(setting.cookie_secret));
app.use(express.static(path.join(__dirname, 'public')));

// session setup
app.use(session({
    secret: setting.session_secret,
    resave: false,
    saveUninitialized: false,
    cookie: { maxAge: 60*60*1000 }
}));

//middleware to catch all the request
app.use(function (req, res, next) {
  console.log('**********Time: %d**********', Date.now());
  next();
});

app.use(auth.authUser);

app.use('/', routes);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
Beispiel #21
0
			models.USERS = db.models.USERS;
			models.HOMEWORKS = db.models.HOMEWORKS;
			models.HOMEWORK_PROBLEMS = db.models.HOMEWORK_PROBLEMS;
			models.HOMEWORK_HISTORIES = db.models.HOMEWORK_HISTORIES;
			models.HOMEWORK_FILES = db.models.HOMEWORK_FILES;

			db.sync(function (err) {
				if (err) console.log(err);
				next();
			});
		});
	}
}));
app.use(session({
	secret: 'NodejsAtSigma',
	resave: false,
	saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

// passport config
passport.use(new LocalStrategy({ passReqToCallback: true }, function (req, username, password, done) {
	console.log("hey!");
	req.models.USERS.find({ USER_ID: username }, function (err, users) {
		console.log(password);
		var hash = crypto.createHash('sha256');
// [START requests]
app.use(logging.requestLogger);
// [END requests]

// Configure the session and session storage.
const sessionConfig = {
  resave: false,
  saveUninitialized: false,
  secret: config.get('SECRET'),
  signed: true,
  store: new DatastoreStore({
    dataset: new Datastore({kind: 'express-sessions'}),
  }),
};

app.use(session(sessionConfig));

// OAuth2
app.use(passport.initialize());
app.use(passport.session());
app.use(require('./lib/oauth2').router);

// Books
app.use('/books', require('./books/crud'));
app.use('/api/books', require('./books/api'));

// Redirect root to /books
app.get('/', (req, res) => {
  res.redirect('/books');
});
Beispiel #23
0
mongoose.Promise = Promise;

const MongoStore = connectMongo(session);

app.use('/public', express.static(path.resolve('public')));
app.use('/doc', express.static(path.resolve('doc')));

app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.use(session({
  secret: 'myUserSuperSecret',
  cookie: {
    maxAge: 2628000000
  },
  store: new MongoStore({ mongooseConnection: mongoose.connection })
}));

app.use(passport.initialize());
app.use(passport.session());

app.use(fileUpload());

passportConfig(passport);

app.use('/api', api);

app.get('favicon.ico', (req, res) => {
  res.sendFile(path.resolve('public/favicon.ico'));
Beispiel #24
0
app.engine('html', require('ejs').renderFile);

var options = {
  host: '120.27.5.9',
  port: 3306,
  user: '******',
  password: '******',
  database: 'dataChart'
};

var sessionStore = new MySQLStore(options);

app.use(session({
    secret: 'kkChart',
    key:'kkChart',
    cookie: {maxAge: 1000 * 60 * 60 * 1},////设定 cookie 1 天
    resave:true,
    saveUninitialized: true,
    store: sessionStore
}));

app.use(flash());
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use(function(req,res,next){
    res.locals.openId = req.session.openId;
Beispiel #25
0
app.use(globalCSP);

var csrfProtection = csrf({ cookie: true });
var parseForm = bodyParser.urlencoded({ extended: false });
app.use(cookieParser());

var pool = anyDB.createPool(config.dbURI, {
	min: 2, max: 10
});

app.use(session({
//	store:new RedisStore({
//        host:'127.0.0.1',
//        port:'6379'
//    }),
	name: 'login',
	secret: '04n4MY7jLXKlz3y17YdoSOR9o71gvH3R',
	resave: false,
	saveUninitialized: false,
	cookie: { path: '/admin', maxAge: 1000*60*60*24*3, httpOnly: true }
	})
);

// URL expected: http://hostname/admin
//app.get('/', csrfProtection, function (req, res) {
app.get('/', csrfProtection, function (req, res, next) {
/*
	var schema = req.headers['x-forwarded-proto'];
    if (schema === 'https') {// Redirect to https.
        res.redirect('https://' + req.headers.host + req.url);
    }
Beispiel #26
0
const router = function (config) {
  // appRouter configuration
  const appRouter = express.Router();
  const mongo = db(config);

  if (config.useBasicAuth) {
    appRouter.use(basicAuth(config.basicAuth.username, config.basicAuth.password));
  }

  appRouter.use(favicon(__dirname + '/../public/images/favicon.ico'));

  appRouter.use(logger('dev', config.options.logger));

  appRouter.use('/public', express.static(__dirname + '/../build/'));

  // Set request size limit
  appRouter.use(bodyParser.urlencoded({
    extended: true,
    limit: config.site.requestSizeLimit,
  }));

  appRouter.use(cookieParser(config.site.cookieSecret));

  appRouter.use(session({
    key: config.site.cookieKeyName,
    resave: true,
    saveUninitialized: true,
    secret: config.site.sessionSecret,
  }));

  appRouter.use(methodOverride(function (req) {
    if (req.body && typeof req.body === 'object' && '_method' in req.body) {
      // look in urlencoded POST bodies and delete it
      const method = req.body._method;
      delete req.body._method;
      return method;
    }
  }));

  if (process.env.NODE_ENV === 'development') {
    appRouter.use(errorHandler());
  }

  const addTrailingSlash = function (s) {
    return s + (s[s.length - 1] === '/' ? '' : '/');
  };
  const buildBaseHref = function (originalUrl, reqUrl) {
    if (reqUrl === '/') {
      return addTrailingSlash(originalUrl);
    }
    const idx = originalUrl.lastIndexOf(reqUrl);
    const rootPath = originalUrl.substring(0, idx);
    return addTrailingSlash(rootPath);
  };

  // View helper, sets local variables used in templates
  appRouter.all('*', function (req, res, next) {
    res.locals.baseHref       = buildBaseHref(req.originalUrl, req.url);
    res.locals.databases      = mongo.databases;
    res.locals.collections    = mongo.collections;
    res.locals.gridFSBuckets  = utils.colsToGrid(mongo.collections);

    // Flash messages
    if (req.session.success) {
      res.locals.messageSuccess = req.session.success;
      delete req.session.success;
    }

    if (req.session.error) {
      res.locals.messageError = req.session.error;
      delete req.session.error;
    }

    //user in admin databases normally have the read and write access to all databases
    if (config.mongodb.admin !== true && mongo.databases[0] !== 'admin') return next();

    mongo.updateDatabases(mongo.adminDb, function (databases) {
      mongo.databases = databases;
      res.locals.databases = mongo.databases;
      return next();
    });
  });

  // route param pre-conditions
  appRouter.param('database', function (req, res, next, id) {
    //Make sure database exists
    if (!_.includes(mongo.databases, id)) {
      req.session.error = 'Database not found!';
      return res.redirect(res.locals.baseHref);
    }

    req.dbName = id;
    res.locals.dbName = id;
    res.locals.dbUrl = utils.buildDatabaseURL(res.locals.baseHref, id);

    if (mongo.connections[id] !== undefined) {
      req.db = mongo.connections[id];
    } else {
      mongo.connections[id] = mongo.mainConn.db(id);
      req.db = mongo.connections[id];
    }

    next();
  });

  // :collection param MUST be preceded by a :database param
  appRouter.param('collection', function (req, res, next, id) {
    //Make sure collection exists

    if (!_.includes(mongo.collections[req.dbName], id)) {
      req.session.error = 'Collection not found!';
      return res.redirect(res.locals.baseHref + 'db/' + req.dbName);
    }

    req.collectionName = id;
    res.locals.collectionName = id;
    res.locals.collectionUrl = utils.buildCollectionURL(res.locals.baseHref, res.locals.dbName, id);

    res.locals.collections = mongo.collections[req.dbName];
    res.locals.gridFSBuckets = utils.colsToGrid(mongo.collections[req.dbName]);

    mongo.connections[req.dbName].collection(id, function (err, coll) {
      if (err || coll === null) {
        req.session.error = 'Collection not found!';
        return res.redirect(res.locals.baseHref + 'db/' + req.dbName);
      }

      req.collection = coll;

      next();
    });
  });

  // :document param MUST be preceded by a :collection param
  appRouter.param('document', function (req, res, next, id) {
    if (id === 'undefined' || id === undefined) {
      req.session.error = 'Document lacks an _id!';
      return res.redirect(res.locals.baseHref + 'db/' + req.dbName + '/' + req.collectionName);
    }

    id = JSON.parse(decodeURIComponent(id));
    let obj_id;

    // Attempt to create ObjectID from passed 'id'
    try {
      obj_id = new mongodb.ObjectID.createFromHexString(id);
    } catch (err) {
      try {
        // Is it a GUID?
        obj_id = new mongodb.Binary(new Buffer(id, 'base64'), 3);
      } catch (err) {
        // Silence GUID error as well
      }
      // Silence the error
    }

    // If an ObjectID was correctly created from passed id param, try getting the ObjID first else falling back to try getting the string id
    // If not valid ObjectID created, try getting string id

    if (obj_id) {
      // passed id has successfully been turned into a valid ObjectID
      req.collection.findOne({ _id: obj_id }, function (err, doc) {
        if (err) {
          req.session.error = 'Error: ' + err;
          return res.redirect(res.locals.baseHref + 'db/' + req.dbName + '/' + req.collectionName);
        }

        if (doc === null) {
          // No document found with obj_id, try again with straight id
          req.collection.findOne({ _id: id }, function (err, doc) {
            if (err) {
              req.session.error = 'Error: ' + err;
              return res.redirect(res.locals.baseHref + 'db/' + req.dbName + '/' + req.collectionName);
            }

            if (doc === null) {
              req.session.error = 'Document not found!';
              return res.redirect(res.locals.baseHref + 'db/' + req.dbName + '/' + req.collectionName);
            }

            // Document found - send it back
            req.document = doc;
            res.locals.document = doc;

            next();
          });
        } else {
          // Document found - send it back
          req.document = doc;
          res.locals.document = doc;

          next();
        }

      });
    } else {
      // Passed id was NOT a valid ObjectID
      req.collection.findOne({ _id: id }, function (err, doc) {
        if (err) {
          req.session.error = 'Error: ' + err;
          return res.redirect(res.locals.baseHref + 'db/' + req.dbName + '/' + req.collectionName);
        }

        if (doc === null) {
          req.session.error = 'Document not found!';
          return res.redirect(res.locals.baseHref + 'db/' + req.dbName + '/' + req.collectionName);
        }

        req.document = doc;
        res.locals.document = doc;

        next();
      });
    }
  });

  // get individual property - for async loading of big documents
  // (db)/(collection)/(document)/(prop)
  appRouter.param('prop', function (req, res, next, prop) {
    req.prop = req.document[prop];
    next();
  });

  // GridFS (db)/gridFS/(bucket)
  appRouter.param('bucket', function (req, res, next, id) {

    req.bucketName = id;
    res.locals.bucketName = id;

    mongo.connections[req.dbName].collection(id + '.files', function (err, filesConn) {
      if (err || filesConn === null) {
        req.session.error = id + '.files collection not found! Err:' + err;
        return res.redirect(res.locals.baseHref + 'db/' + req.dbName);
      }

      req.filesConn = filesConn;

      filesConn.find({}).toArray(function (err, files) {
        if (err || files === null) {
          req.session.error = id + '.files collection not found! Error:' + err;
          return res.redirect(res.locals.baseHref + 'db/' + req.dbName);
        }

        req.files = files;

        next();
      });
    });
  });

  // GridFS files
  appRouter.param('file', function (req, res, next, id) {
    req.fileID = JSON.parse(decodeURIComponent(id));
    next();
  });

  // mongodb mongoMiddleware
  const mongoMiddleware = function (req, res, next) {
    req.mainConn = mongo.mainConn;
    req.adminDb = mongo.adminDb;
    req.databases = mongo.databases; //List of database names
    req.collections = mongo.collections; //List of collection names in all databases
    req.gridFSBuckets = utils.colsToGrid(mongo.collections);

    //Allow page handlers to request an update for collection list
    req.updateCollections = mongo.updateCollections;

    next();
  };

  // routes
  const configuredRoutes = routes(config);

  appRouter.get('/', mongoMiddleware, configuredRoutes.index);
  appRouter.post('/', mongoMiddleware, configuredRoutes.addDatabase);
  appRouter.delete('/:database', mongoMiddleware, configuredRoutes.deleteDatabase);
  appRouter.get('/db/:database', mongoMiddleware, configuredRoutes.viewDatabase);

  appRouter.post('/checkValid', mongoMiddleware, configuredRoutes.checkValid);

  // Collection level routes
  appRouter.post('/db/:database/import/:collection', mongoMiddleware, configuredRoutes.importCollection);
  appRouter.get('/db/:database/compact/:collection', mongoMiddleware, configuredRoutes.compactCollection);
  appRouter.get('/db/:database/expArr/:collection', mongoMiddleware, configuredRoutes.exportColArray);
  appRouter.get('/db/:database/expCsv/:collection', mongoMiddleware, configuredRoutes.exportCsv);
  appRouter.get('/db/:database/reIndex/:collection', mongoMiddleware, configuredRoutes.reIndex);
  appRouter.post('/db/:database/addIndex/:collection', mongoMiddleware, configuredRoutes.addIndex);
  appRouter.get('/db/:database/export/:collection', mongoMiddleware, configuredRoutes.exportCollection);
  appRouter.get('/db/:database/dropIndex/:collection', mongoMiddleware, configuredRoutes.dropIndex);
  appRouter.get('/db/:database/updateCollections', mongoMiddleware, configuredRoutes.updateCollections);

  // GridFS
  appRouter.post('/db/:database/gridFS', mongoMiddleware, configuredRoutes.addBucket);
  appRouter.delete('/db/:database/gridFS/:bucket', mongoMiddleware, configuredRoutes.deleteBucket);

  appRouter.get('/db/:database/gridFS/:bucket', mongoMiddleware, configuredRoutes.viewBucket);
  appRouter.post('/db/:database/gridFS/:bucket', mongoMiddleware, configuredRoutes.addFile);
  appRouter.get('/db/:database/gridFS/:bucket/:file', mongoMiddleware, configuredRoutes.getFile);
  appRouter.delete('/db/:database/gridFS/:bucket/:file', mongoMiddleware, configuredRoutes.deleteFile);

  appRouter.get('/db/:database/:collection', mongoMiddleware, configuredRoutes.viewCollection);
  appRouter.put('/db/:database/:collection', mongoMiddleware, configuredRoutes.renameCollection);
  appRouter.delete('/db/:database/:collection', mongoMiddleware, configuredRoutes.deleteCollection);
  appRouter.post('/db/:database', mongoMiddleware, configuredRoutes.addCollection);

  // Document routes
  appRouter.post('/db/:database/:collection', mongoMiddleware, configuredRoutes.addDocument);
  appRouter.get('/db/:database/:collection/:document', mongoMiddleware, configuredRoutes.viewDocument);
  appRouter.put('/db/:database/:collection/:document', mongoMiddleware, configuredRoutes.updateDocument);
  appRouter.delete('/db/:database/:collection/:document', mongoMiddleware, configuredRoutes.deleteDocument);

  // Property routes
  appRouter.get('/db/:database/:collection/:document/:prop', mongoMiddleware, configuredRoutes.getProperty);

  return appRouter;
};
var cors = function(req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    next();
};

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser('Avatar Voting Secret'));
app.use(session({secret: 'Avatar Voting Secret'}));
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', index);
app.use('/users', users.router);
app.use('/suggestions', auth.filter, cors, suggestions);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

// error handlers
Beispiel #28
0
var express = require('express')
var session = require('express-session')
var Grant = require('grant-express')

var config = {
  server: {
    protocol: 'http',
    host: 'dummy.com:3000'
  },
  facebook: {
    key: '[APP_ID]',
    secret: '[APP_SECRET]',
    callback: '/handle_callback'
  }
}

var app = express()
app.use(session({secret: 'very secret'}))
app.use(new Grant(config))

app.get('/handle_callback', function (req, res) {
  console.log(req.query)
  res.end(JSON.stringify(req.query, null, 2))
})

app.listen(3000, function () {
  console.log('Express server listening on port ' + 3000)
})
var app = express();

var server = http.createServer(app);

server.listen(4000);

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(expressSession({secret: '1234567890QWERTY',maxAge  : new Date(Date.now() + 36000000),expires : new Date(Date.now() + 3600000)}));
app.use('/img',express.static(path.join(__dirname, 'public/images')));
app.use('/js',express.static(path.join(__dirname, 'public/javascripts')));
app.use('/css',express.static(path.join(__dirname, 'public/stylesheets')));
app.use('/', routes);



/// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

Beispiel #30
0
}
var methodOverride = require('method-override');

var app = express();

app.use(methodOverride('_method'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());


app.use(session({
  store: new pgSession({
    pg : pg,
    conString : connectionString,
    tableName : 'session'
  }),
  secret: 'sooosecrett', // something we maybe want to save with dotenv *hint hint*
  resave: false,
  saveUninitialized: true,
  cookie: { maxAge: 30 * 24 * 60 * 60 * 1000 } // 30 days
}))

app.get('/', function(req, res) {

  // console.log(req.session.user);
  res.render('home.html.ejs', { user: req.session.user});
});

app.post('/', db.createUser, function(req, res) {
  res.redirect(301,'/');
});