how to solve TypeError: Cannot read property 'connect' of undefined in mongodb?

Viewed 984

I'm a trying to get database in my console

const mongoclient=require('mongodb').mongoclient

const state={
db:null
}

module.exports.connect=function(done){
      const url='mongodb://localhost:27017'
      const dbname='shopping'

           mongoclient.connect(url,(err,data)=>{
           if (err) return done (err)
           state.db=data.db(dbname)
           done()
})
}

           module.exports.get=function(){
           return state.db
}

and getting following error below

 project-e-commerce@0.0.0 start C:\Users\krish\Desktop\project e commerce
 > node ./bin/www

 C:\Users\krish\Desktop\project e commerce\config\connection.js:11
 mongoclient.connect(url,(err,data)=>{
            ^

 TypeError: Cannot read property 'connect' of undefined
 at Object.module.exports.connect (C:\Users\krish\Desktop\project e 
 commerce\config\connection.js:11:17)
 at Object.<anonymous> (C:\Users\krish\Desktop\project e commerce\app.js:24:4)

Here is my code in app.js file

db.connect((err)=>{
if (err) console.log("connection error"+err);
else console.log("database connected to port 27017");
})
1 Answers

The error shows that you don't have mongoclient. Try installing it first.

npm i mongodb --save

Once, you have it get mongoclient.

const MongoClient = require('mongodb').MongoClient;

Then, try connecting the mongodb instance using it:

// Use connect method to connect to the server
MongoClient.connect(url, (err, client) => {
  console.log("Connected successfully to server");
  const db = client.db(dbName);
  client.close();
});
Related