Dpack get data Node : V10
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

92 lines
2.0 KiB

  1. var createError = require('http-errors');
  2. var express = require('express');
  3. var exphbs = require('express-handlebars');
  4. var helpers = require('./helper.js');
  5. var path = require('path');
  6. var cookieParser = require('cookie-parser');
  7. var logger = require('morgan');
  8. var session = require('express-session');
  9. var MemoryStore = require('memorystore')(session);
  10. var indexRouter = require('../routes/index');
  11. var app = express();
  12. var hbs = exphbs.create({
  13. defaultLayout: 'main',
  14. helpers : helpers,
  15. // Uses multiple partials dirs, templates in "shared/templates/" are shared
  16. // with the client-side of the app (see below).
  17. partialsDir: [
  18. 'views/partials/'
  19. ]
  20. });
  21. // view engine setup
  22. app.engine('handlebars', hbs.engine);
  23. app.set('view engine', 'handlebars');
  24. app.use(logger('dev'));
  25. app.use(express.json());
  26. app.use(express.urlencoded({ extended: false }));
  27. app.use(cookieParser());
  28. app.use(express.static(path.join(__dirname, '../public')));
  29. app.use(session({
  30. key: 'user_sid',
  31. secret: 'secret',
  32. resave: false,
  33. store: new MemoryStore({
  34. checkPeriod: 86400000 // prune expired entries every 24h
  35. }),
  36. saveUninitialized: false,
  37. cookie: {
  38. expires: 300000
  39. }
  40. }));
  41. app.use((req, res, next) => {
  42. if (req.cookies.user_sid && !req.session.user) {
  43. res.clearCookie('user_sid');
  44. }
  45. next();
  46. });
  47. app.use(function(req, res, next) {
  48. res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
  49. next();
  50. });
  51. app.use('/', indexRouter);
  52. // catch 404 and forward to error handler
  53. app.use(function(req, res, next) {
  54. next(createError(404));
  55. });
  56. // error handler
  57. app.use(function(err, req, res, next) {
  58. // set locals, only providing error in development
  59. res.locals.message = err.message;
  60. res.locals.error = req.app.get('env') === 'development' ? err : {};
  61. // render the error page
  62. res.status(err.status || 500);
  63. res.render('error',{errorMessage : err});
  64. });
  65. module.exports = app;