From e30d1ee10cc4729bc10ffdd77fb30bdca1670706 Mon Sep 17 00:00:00 2001
From: Shaikh Rezwan Rafid Ahmad <sa03267@surrey.ac.uk>
Date: Thu, 16 Mar 2023 11:42:39 +0000
Subject: [PATCH] MongoDB Database Setup

---
 .../server/database/conn.js                      | 16 ++++++++++++++++
 daily-thought-user-service/server/server.js      | 14 ++++++++++++--
 2 files changed, 28 insertions(+), 2 deletions(-)
 create mode 100644 daily-thought-user-service/server/database/conn.js

diff --git a/daily-thought-user-service/server/database/conn.js b/daily-thought-user-service/server/database/conn.js
new file mode 100644
index 00000000..dc901992
--- /dev/null
+++ b/daily-thought-user-service/server/database/conn.js
@@ -0,0 +1,16 @@
+import mongoose from "mongoose";
+import { MongoMemoryServer } from "mongodb-memory-server";
+
+async function connect(){
+
+    const mongod = await MongoMemoryServer.create();
+    const getUri = mongod.getUri();
+
+    mongoose.set('strictQuery', true)
+    const db = await mongoose.connect(getUri);
+    console.log("Database Connected")
+    return db;
+
+}
+
+export default connect;
\ No newline at end of file
diff --git a/daily-thought-user-service/server/server.js b/daily-thought-user-service/server/server.js
index 08c00215..8220cc51 100644
--- a/daily-thought-user-service/server/server.js
+++ b/daily-thought-user-service/server/server.js
@@ -1,6 +1,7 @@
 import express from 'express';
 import cors from 'cors';
 import morgan from 'morgan';
+import connect from './database/conn.js'
 
 const app = express();
 
@@ -16,6 +17,15 @@ app.get('/', (req, res) => {
     res.status(201).json("Home GET Request")
 });
 
-app.listen(port, () => {
-    console.log(`Server connected to http://localhost:${port}`);
+// Start server only when we have valid connection
+connect().then(() => {
+    try {
+        app.listen(port, () => {
+            console.log(`Server connected to http://localhost:${port}`);
+        })
+    } catch (error) {
+        console.log('Cannot connect to the server')
+    }
+}).catch(error => {
+    console.log("Invalid database connection...!");
 })
\ No newline at end of file
-- 
GitLab