|
- var createError = require('http-errors');
- var express = require('express');
-
- var exphbs = require('express-handlebars');
- var helpers = require('./helper.js');
-
- var path = require('path');
- var cookieParser = require('cookie-parser');
- var logger = require('morgan');
- var session = require('express-session');
- var MemoryStore = require('memorystore')(session);
-
-
-
-
- var indexRouter = require('../routes/index');
-
- var app = express();
-
- var hbs = exphbs.create({
- defaultLayout: 'main',
- helpers : helpers,
-
- // Uses multiple partials dirs, templates in "shared/templates/" are shared
- // with the client-side of the app (see below).
- partialsDir: [
- 'views/partials/'
- ]
- });
-
- // view engine setup
- app.engine('handlebars', hbs.engine);
- app.set('view engine', 'handlebars');
-
-
-
-
-
- app.use(logger('dev'));
- app.use(express.json());
- app.use(express.urlencoded({ extended: false }));
- app.use(cookieParser());
- app.use(express.static(path.join(__dirname, '../public')));
-
- app.use(session({
- key: 'user_sid',
- secret: 'secret',
- resave: false,
- store: new MemoryStore({
- checkPeriod: 86400000 // prune expired entries every 24h
- }),
- saveUninitialized: false,
- cookie: {
- expires: 300000
- }
- }));
-
- app.use((req, res, next) => {
- if (req.cookies.user_sid && !req.session.user) {
- res.clearCookie('user_sid');
- }
- next();
- });
-
- app.use(function(req, res, next) {
- res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
- next();
- });
-
-
- app.use('/', indexRouter);
-
- // catch 404 and forward to error handler
- app.use(function(req, res, next) {
- next(createError(404));
- });
-
- // error handler
- app.use(function(err, req, res, next) {
- // set locals, only providing error in development
- res.locals.message = err.message;
- res.locals.error = req.app.get('env') === 'development' ? err : {};
-
- // render the error page
- res.status(err.status || 500);
- res.render('error',{errorMessage : err});
- });
-
-
-
- module.exports = app;
|