Real-Time User Analytics API: Code Breakup for src/config/db.js

import mongoose from "mongoose";
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI);
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch (error) {
console.error(`Error: ${error.message}`);
process.exit(1);
}
};
export default connectDB;
This code is a JavaScript module that sets up and establishes a connection to a MongoDB database using Mongoose, a popular Node.js library for MongoDB.
Code Breakdown
1. Import Mongoose
import mongoose from "mongoose";
mongoose
: This is the library used to interact with MongoDB in a more structured way.- Purpose: Mongoose provides features like schema validation, query building, and middleware for working with MongoDB.
2. Define connectDB
Function
const connectDB = async () => {
- Purpose: This is an asynchronous function that establishes a connection to the MongoDB database.
- The function is asynchronous because database connections can take some time, and we don’t want to block the execution of other code.
3. Try-Catch Block
try {
const conn = await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
console.log(`MongoDB Connected: ${conn.connection.host}`);
} catch (error) {
console.error(`Error: ${error.message}`);
process.exit(1);
}
- Purpose: Ensures that the database connection is established smoothly and handles potential errors.
mongoose.connect()
:- Connects to the MongoDB database using the connection string stored in the
MONGO_URI
environment variable. - Returns a
conn
object containing details about the connection.
- Connects to the MongoDB database using the connection string stored in the
console.log
:- If the connection succeeds, it logs the message:
MongoDB Connected: <host_name>
<host_name>
represents the hostname of the MongoDB server (e.g.,localhost
or a cloud-hosted server).
- If the connection succeeds, it logs the message:
- Error Handling:
- If the connection fails, the
catch
block logs the error message:Error: <error_message>
process.exit(1)
:- Exits the Node.js process with a non-zero status (
1
) to indicate a failure.
- Exits the Node.js process with a non-zero status (
- If the connection fails, the
4. Export the Function
export default connectDB;
- Purpose: Allows this function to be imported and reused in other files.
- Example Usage:
import connectDB from "./config/db.js"; connectDB();
How It Works
- The
connectDB
function is called during the application startup. - It retrieves the database connection string (
MONGO_URI
) from the environment variables. - Attempts to connect to the MongoDB database.
- Logs a success message if the connection is established.
- Logs an error and exits the process if the connection fails.
Why Use It?
- Reusable Connection Logic: Centralizes the database connection setup for reuse in different parts of the application.
- Error Handling: Prevents the application from running if the database connection fails, ensuring reliability.
- Environment-Friendly: Keeps the connection string out of the codebase by using environment variables (
process.env.MONGO_URI
).
Example MONGO_URI
In a .env
file, you might have:
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/mydatabase
This code ensures secure, modular, and robust database connection management in a Node.js application.