db.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. const mongoose = require('mongoose');
  2. // Chaîne de connexion avec authentification (identifiants en clair)
  3. const db = 'mongodb://admin:azerty10@database_preprod:27017/mean-fatboar-db?authSource=admin';
  4. const options = {
  5. useNewUrlParser: true,
  6. useUnifiedTopology: true,
  7. serverSelectionTimeoutMS: 5000,
  8. socketTimeoutMS: 45000,
  9. keepAlive: true,
  10. keepAliveInitialDelay: 300000,
  11. autoIndex: true,
  12. retryWrites: true,
  13. };
  14. mongoose.connect(db, options)
  15. .then(() => {
  16. console.log("Successfully connected to the database.");
  17. mongoose.connection.db.createCollection("app_status", function(err, res) {
  18. if (err) {
  19. console.log("Collection déjà existante, ignoré.");
  20. } else {
  21. console.log("Collection app_status créée pour maintenir la base de données active.");
  22. mongoose.connection.db.collection("app_status").updateOne(
  23. { name: "system_status" },
  24. { $set: { name: "system_status", lastChecked: new Date(), status: "active" } },
  25. { upsert: true }
  26. );
  27. }
  28. });
  29. })
  30. .catch(err => {
  31. console.log("Could not connect to the database.", err);
  32. });
  33. // Gestion des erreurs et reconnexion automatique
  34. mongoose.connection.on('error', (err) => {
  35. console.log('Mongoose connection error: ', err);
  36. });
  37. mongoose.connection.on('disconnected', () => {
  38. console.log('Mongoose connection disconnected');
  39. setTimeout(() => {
  40. mongoose.connect(db, options).catch(err => {
  41. console.log("Reconnection failed: ", err);
  42. });
  43. }, 5000);
  44. });
  45. process.on('SIGINT', () => {
  46. mongoose.connection.close(() => {
  47. console.log('Mongoose connection closed due to app termination');
  48. process.exit(0);
  49. });
  50. });
  51. module.exports = mongoose.connection;
  52. // let min = 999999999;
  53. // let max = 10000000000;
  54. // for (i = 0; i < 50000; i++) {
  55. // let code = Math.floor(Math.random() * (max - min + 1)) + min;
  56. // const ticke = new Ticket({
  57. // code: code,
  58. // isUsed: false,
  59. // gains: "une entrée ou un dessert au choix",
  60. // date_used: new Date(),
  61. // index: 'index',
  62. // isServed: true
  63. // });
  64. // ticke.save();
  65. // }
  66. // const resto = new Restaurant({
  67. // "index": 5,
  68. // "name": "FatBoar 5",
  69. // "adress": "20 Rue Houdart, 95700 Roissy-en-France, France",
  70. // "longitude": 2.515081,
  71. // "latitude": 49.002317
  72. // });
  73. // resto.save();
  74. // const salt = bcrypt.genSaltSync(12);
  75. // password = bcrypt.hashSync('Pass@123', 12);
  76. // console.log('fgfg', password);
  77. // let date = new Date(1997, 1 , 12 , 20, 40);
  78. // const user = new User({
  79. // firstname: " adrien",
  80. // lastname: "xxxxxxx",
  81. // email: "adrien@hotmail.fr",
  82. // role: 'admin',
  83. // birthday: date,
  84. // phonenumber: '0680705876',
  85. // isActive: true,
  86. // password: password
  87. // });
  88. // user.save();