index.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. const express = require('express');
  2. const compression = require('compression');
  3. const bodyParser = require('body-parser');
  4. const passport = require('passport');
  5. const mongoose = require('mongoose');
  6. const session = require('express-session');
  7. const cors = require('cors');
  8. const { createProxyMiddleware } = require('http-proxy-middleware');
  9. const { TextEncoder, TextDecoder } = require('util');
  10. global.TextEncoder = TextEncoder;
  11. global.TextDecoder = TextDecoder;
  12. // Correction Mongoose
  13. mongoose.set('strictQuery', false);
  14. // Import des routes (conservez toutes vos routes existantes)
  15. const userRoutes = require('./routes/user');
  16. const employeeRoutes = require('./routes/employee');
  17. const authRoutes = require('./routes/auth');
  18. const ticketRoutes = require('./routes/ticket');
  19. const emailsRoutes = require('./routes/emailing');
  20. const authGoogle = require('./routes/google');
  21. const authFacebook = require('./routes/facebook');
  22. const tirageRoutes = require('./routes/tirage');
  23. const contactRoutes = require('./routes/contact');
  24. const restaurantRoutes = require('./routes/restaurant');
  25. const app = express();
  26. // Middlewares (conservés inchangés)
  27. app.use(compression());
  28. app.use(bodyParser.json());
  29. app.use(bodyParser.urlencoded({ extended: true }));
  30. app.use(express.urlencoded({ extended: true }));
  31. // CORS (configuration d'origine conservée)
  32. app.use(cors({
  33. origin: 'https://angular-dev.foodgame.fr',
  34. optionsSuccessStatus: 200
  35. }));
  36. // Session (conservée inchangée)
  37. app.use(session({
  38. secret: 'this_is_a_secret',
  39. resave: true,
  40. saveUninitialized: true,
  41. rolling: true,
  42. cookie: {
  43. maxAge: 360000,
  44. secure: false
  45. }
  46. }));
  47. app.use(passport.initialize());
  48. // Routes API AVANT le proxy (très important !)
  49. app.get('/api', (req, res) => {
  50. res.status(200).send('Api Works.');
  51. });
  52. app.use('/api/users', userRoutes);
  53. app.use('/api/employees', employeeRoutes);
  54. app.use('/api/tickets', ticketRoutes);
  55. app.use('/api/auth', authRoutes);
  56. app.use('/api/emails', emailsRoutes);
  57. app.use('/api/auth/google', authGoogle);
  58. app.use('/api/auth/facebook', authFacebook);
  59. app.use('/api/tirage', tirageRoutes);
  60. app.use('/api/contact', contactRoutes);
  61. app.use('/api/restaurants', restaurantRoutes);
  62. // Proxy vers Angular SSR EN DERNIER (pour toutes les autres routes)
  63. app.use('/', createProxyMiddleware({
  64. target: 'http://angular_ssr_dev:4000',
  65. changeOrigin: true,
  66. // Supprimez pathFilter - les routes API sont déjà gérées au-dessus
  67. }));
  68. // Connexion MongoDB (conservée inchangée)
  69. require('./lib/db');
  70. const PORT = process.env.PORT || 4000;
  71. app.listen(PORT, () => {
  72. console.log(`Api listen on port ${PORT}.`);
  73. });