Skip to content

Commit 5d94816

Browse files
committed
Update db connection logic
1 parent 574727d commit 5d94816

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ app.use((err, req, res, next) => {
3131
res.status(statusCode).send({ success: false, message: errorMessage });
3232
});
3333

34+
connectDB(MONGO_STRING);
35+
3436
if (require.main === module) {
35-
connectDB(MONGO_STRING);
3637
app.listen(PORT, () => {
3738
logger.info(`Blog API: Now online on port ${PORT}`);
3839
});
3940
} else {
40-
// logger.turnOffConsoleLogging();
4141
module.exports = app;
4242
}

test/test.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require("dotenv").config();
77
const MONGO_STRING = `${process.env.DEMO1_MONGO_STRING}`;
88
chai.use(http);
99
let app = require("../index");
10+
// logger.turnOffConsoleLogging();
1011

1112
describe(`API Tests`, function () {
1213
let userToken;
@@ -24,7 +25,7 @@ describe(`API Tests`, function () {
2425
})
2526
.end((err, res) => {
2627
adminToken = res.body.access;
27-
// console.log("adminToken: ", adminToken);
28+
console.log("adminToken: ", adminToken);
2829
});
2930
chai.request(app)
3031
.post("/users/login")
@@ -35,7 +36,7 @@ describe(`API Tests`, function () {
3536
})
3637
.end((err, res) => {
3738
userToken = res.body.access;
38-
// console.log("userToken: ", userToken);
39+
console.log("userToken: ", userToken);
3940
});
4041
});
4142
after(async () => {

utils/mongoDBConn.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,19 @@ const logger = require("./logger");
33

44
const connectDB = async (uri) => {
55
try {
6-
await mongoose.connect(uri);
7-
mongoose.connection.once("open", () => logger.info("Blog API: connected to MongoDB"));
6+
if (mongoose.connection.readyState === 0) {
7+
await mongoose.connect(uri);
8+
mongoose.connection.once("open", () => {
9+
logger.info("Blog API: Connected to MongoDB");
10+
});
11+
} else if (mongoose.connection.readyState === 2) {
12+
await new Promise((resolve) => {
13+
mongoose.connection.once("open", resolve);
14+
});
15+
logger.info("Blog API: Connection is now open after waiting.");
16+
} else {
17+
logger.info("Blog API: Connection is already open.");
18+
}
819
} catch (err) {
920
logger.error(err.message);
1021
process.exit(1);
@@ -13,7 +24,9 @@ const connectDB = async (uri) => {
1324

1425
const disconnectDB = async () => {
1526
await mongoose.connection.close();
16-
logger.info("Blog API: Disconnected from MongoDB");
27+
mongoose.connection.on("disconnected", () => {
28+
logger.info("Blog API: Disconnected from MongoDB");
29+
});
1730
};
1831

1932
module.exports = { connectDB, disconnectDB };

0 commit comments

Comments
 (0)