Search code examples
javascriptnode.jsmongodb

Cannot read properties of null (reading 'collection'), this error is coming when submitting form. Unable to store data in database


in connection.js


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=()=>state.db

in product-helpers

var db=require('../config/connection')

module.exports={

    addProduct:(product,callback)=>{
        console.log(product)
        db.get().collection('product').insertOne(product).then((data)=>{
            console.log(data);
            callback(true)
       })
            
        
        
    }
}

I am unable to find what's the error. I am new to nodejs.

I tried to submit a form but not working. How can I fix this.


Solution

  • You cannot use module.exports to export multiple parts( i.e function ,object ,properties) from the same module .You should use only exports keyword to export more than one properties from a single module.

    I have answered a same question here on this platform where I described in details how to create connection with database and get the DB-name using mongodb driver.

    You will also get a crystal clear idea about how to import the module to get the database instance in your others module.

    Please check the link below. I am sure you will get you answer there.

    Node.js Express application not logging MongoDB connection status