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")));
}
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');
}));
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;
+ res.locals.user = { name: "" };
+ 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) {