X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=app.js;h=3199af3e48efc8e0e17ab55d8a18514f6ef6d5a7;hp=7a8b98f3c330d0cf78a1778ef138cdc9ee6e4b62;hb=8d7e2786f5a67a1b9a77c742d7951e0efbe8747d;hpb=1d184b4c016a645228251ce984d4c980e60420b0 diff --git a/app.js b/app.js index 7a8b98f3..3199af3e 100644 --- a/app.js +++ b/app.js @@ -6,8 +6,6 @@ var logger = require('morgan'); var sassMiddleware = require('node-sass-middleware'); var favicon = require('serve-favicon'); -var router = require('./routes/all'); - var app = express(); app.use(favicon(path.join(__dirname, "public", "images", "favicon", "favicon.ico"))); @@ -19,13 +17,17 @@ if (app.get('env') === 'development') } else { - app.set('trust proxy', true); //http://dev.rdybarra.com/2016/06/23/Production-Logging-With-Morgan-In-Express/ + // http://dev.rdybarra.com/2016/06/23/Production-Logging-With-Morgan-In-Express/ + app.set('trust proxy', true); // In prod, only log error responses (https://github.com/expressjs/morgan) app.use(logger('combined', { skip: function (req, res) { return res.statusCode < 400 } })); } +// Allow layout.pug to select the right vue file: +app.locals.development = (app.get('env') === 'development'); + // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'pug'); @@ -41,7 +43,29 @@ app.use(sassMiddleware({ })); app.use(express.static(path.join(__dirname, 'public'))); -app.use('/', router); +// Before showing any page, check + save credentials +app.use(function(req, res, next) { + req.loggedIn = false; + if (!req.cookies.token) + return next(); + UserModel.getOne("sessionToken", req.cookies.token, function(err, user) { + if (!!user) + { + req.loggedIn = true; + res.locals.user = { + _id: user._id, + name: user.name, + email: user.email, + notify: user.notify, + }; + } + next(); + }); +}); + +// Routing +const routes = require(path.join(__dirname, "routes", "all")); +app.use('/', routes); // catch 404 and forward to error handler app.use(function(req, res, next) {