MongoDB Node.js TypeError:无法读取null的属性“ db”

时间:2018-07-05 10:27:47

标签: javascript node.js mongodb

我正在为我的项目创建一个数据库,但是在此代码中:

function getallvideos(callback) {
  MongoClient.connect(url, function(err, client) {
    const db = client.db("cathub")
    db.collection("videos", function(err, collection) {
      collection.find().toArray(function(err, res) {
        callback(res)
      })
    })
    db.close()
  })
}

我收到此错误:

  

TypeError:无法读取null的属性“ db”

我的MongoDB:

DB Screenshot

2 个答案:

答案 0 :(得分:2)

如上所述,您需要记录连接错误。完成此操作后,您将了解连接问题是什么!还请确保您的URL中存在数据库名称!

function getallvideos(callback) {
     MongoClient.connect(url, function(err, client) {
           if (err) {
               console.error('An error occurred connecting to MongoDB: ', err);
           } else {
               const db = client.db("cathub")
               db.collection("videos", function (err, collection) {
                    collection.find().toArray(function(err, res) {
                                 callback(res)
                    })
               })
               db.close()
           }
     })
}

我还会处理访问视频集的错误,从长远来看,这将是最好的选择!

答案 1 :(得分:0)

const DB_URL = 'mongodb+srv://yourUser:yourPassword@yourCluster.mongodb.net/'
const DB_NAME = 'someDBName'
const DB_COLLECTION_NAME = 'someCollectionName'


const getData = async () => {
    const client = await MongoClient.connect(DB_URL, {
        useUnifiedTopology: true
    }).catch((err) => {
        console.log(err)
    })

    if (!client) {
        return []
    }

    try {
        const db = client.db(DB_NAME)
        const collection = db.collection(DB_COLLECTION_NAME)
        const res = await collection.find().toArray()
        return res
        // console.log(res)
    } catch (err) {
        return err
        // console.log(err)
    } finally {
        client.close()
    }
}


getData()
    .then((data) => {
        console.log(data)

    })
    .catch((err) => {

        console.log(err)
    })