index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const express = require('express')
  2. const app = express()
  3. const session = require('express-session');
  4. const db = require('../db');
  5. const bodyParser = require('body-parser');
  6. const keys = require('../keys');
  7. const passport = require('passport');
  8. const usersRoutes = require('./user');
  9. const productRoutes = require('./product');
  10. const categoryRoutes = require('./category');
  11. const blogRoutes = require('./blog');
  12. const apiRoutes = require('./api');
  13. const productHeroRoutes = require('./product-hero');
  14. require("../services/passport");
  15. // connect to DB
  16. db.connect();
  17. const store = db.initSessionStore();
  18. app.use(bodyParser.json());
  19. // var csrf = require('csurf');
  20. // consider using this
  21. const sess =
  22. { name: 'promo-secure-session',
  23. secret: keys.SESSION_SECRET,
  24. cookie: { maxAge: 2 * 60 * 60 * 1000 },
  25. resave: false,
  26. saveUninitialized: false,
  27. store
  28. }
  29. if (process.env.NODE_ENV === 'production') {
  30. app.set('trust proxy', 1);
  31. sess.cookie.secure = true;
  32. sess.cookie.httpOnly = true;
  33. sess.cookie.sameSite = true;
  34. sess.cookie.domain = process.env.DOMAIN // .yourdomain.com
  35. }
  36. app.use(session(sess));
  37. app.use(passport.initialize());
  38. app.use(passport.session());
  39. app.use('', apiRoutes);
  40. app.use('/product-heroes', productHeroRoutes);
  41. app.use('/users', usersRoutes);
  42. app.use('/products', productRoutes);
  43. app.use('/categories', categoryRoutes);
  44. app.use('/blogs', blogRoutes);
  45. module.exports = {
  46. path: '/api/v1',
  47. handler: app
  48. }