How to Connect Mongodb Authentication by Node.js?

MongoDB is a popular NoSQL database that provides high performance, high availability, and easy scalability. In many applications, you need to connect to a MongoDB database with authentication to ensure data security. This article will guide you through the process of connecting to a MongoDB database with authentication using Node.js.

These are the following steps to connect Mongodb Authentication by Node.js:

Table of Content

  • Setting Up MongoDB with Authentication
  • Connecting to MongoDB Using Node.js

Setting Up MongoDB with Authentication

Step 1: Start MongoDB with Authentication

  • First, ensure that your MongoDB instance is running with authentication enabled. You can do this by editing the MongoDB configuration file (mongod.conf) and setting the security option:
security:
authorization: enabled
  • After updating the configuration file, restart the MongoDB service:
sudo systemctl restart mongod

Step 2: Create a User in MongoDB

  • To connect with authentication, you need a user with appropriate permissions. Connect to your MongoDB instance and create a user:
mongo
  • Inside the MongoDB shell, switch to the admin database and create a user:
use admin

db.createUser({
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

Connecting to MongoDB Using Node.js

Step 1: Set Up Your Node.js Project

  • Create a new directory for your project and navigate into it:
mkdir mongo-auth-example
cd mongo-auth-example
  • Initialize a new Node.js project:
npm init -y
  • Install the mongodb package:
npm install mongodb

Project Structure

Project Structure

The Update dependencies in your package.json file will look like:

"dependency":{ 
"mongodb": "4.1.1"
}

Step 2: Write the Connection Code

Create a new file named index.js and open it in your text editor. Add the following code to connect to MongoDB with authentication:

JavaScript
const { MongoClient } = require('mongodb');

// Connection URL
const url = 'mongodb://myUserAdmin:abc123@localhost:27017/admin';
const client = new MongoClient(url, { useNewUrlParser: true, useUnifiedTopology: true });

// Database Name
const dbName = 'myDatabase';

async function main() {
  // Use connect method to connect to the server
  await client.connect();
  console.log('Connected successfully to server');

  const db = client.db(dbName);

  // The following code can be used to perform database operations

  // Close the connection
  await client.close();
}

main().catch(console.error);

Step 3: Handling Connection Errors

To handle potential errors, you can wrap the connection logic in a try-catch block. Update your main function as follows:

JavaScript
async function main() {
  try {
    // Use connect method to connect to the server
    await client.connect();
    console.log('Connected successfully to server');

    const db = client.db(dbName);

    // Perform database operations here

  } catch (err) {
    console.error('Failed to connect to MongoDB', err);
  } finally {
    // Ensure that the client will close when you finish/error
    await client.close();
  }
}

main().catch(console.error);

Step 4: Run Your Node.js Application

Save the index.js file and run your Node.js application:

node index.js

If everything is set up correctly, you should see the message Connected successfully to server in your terminal.

Conclusion

In this article, we have covered the steps to connect to a MongoDB database with authentication using Node.js. By following these steps, you can securely connect to your MongoDB instance and perform various database operations. Ensure that you handle connection errors appropriately to make your application more robust.



Contact Us