美文网首页
Mongodb读写数据错误: db.collection is

Mongodb读写数据错误: db.collection is

作者: 曾經丶記憶的風景 | 来源:发表于2020-05-22 10:03 被阅读0次

    Node调用mongodb写如数据异常

    最近有看学习使用Express,然后按照网上一些教程编写demo,但是发现在结合mongodb使用时,总会报错;最后搜索一番,原来是mongodb的版本3.x2.x写法不同,所以才会提示报错。

    我的版本: "mongodb": "^3.5.7"

    如果使用2.x版本,网友说可以将版本降至: "mongodb": "^2.2.33"

    问题描述

    使用nodejs,连接mongodb,数据写入提示异常:

    TypeError: db.collection is not a function
    或
    TypeError: db.open is not a function
    或
    TypeError: db.close is not a function
    或
    TyepError: client.insert is not a function
    

    错误方式

    以下是按照博主的demo写的,就提示TypeError: db.open is not a function

      //打开数据库
      mongodb.open(function (err, db) {
        if (err) {
          return callback(err);//错误,返回 err 信息
        }
        //读取 users 集合
        db.collection('users', function (err, collection) {
          if (err) {
            mongodb.close();
            return callback(err);//错误,返回 err 信息
          }
          //查找用户名(name键)值为 name 一个文档
          collection.findOne({
            name: name
          }, function (err, user) {
            mongodb.close();
            if (err) {
              return callback(err);//失败!返回 err 信息
            }
            callback(null, user);//成功!返回查询的用户信息
          });
        });
      });
    

    正确方式

    var MongodbClient = require('mongodb').MongoClient
    var url = 'mongodb://localhost:27017/blog'
    
    // 连接数据库
    MongodbClient.connect(url, function(err, client) {
      if (err) {
        return callback && callback(err)
      }
      
      var db = client.db('blog')
      db.collection('users').findOne({ username: username }, function(err, result) {
        client.close()
        if (err) {
          return callback && callback(err)
        }
        callback(null, result)
      })
    })
    
    

    相关文章

      网友评论

          本文标题:Mongodb读写数据错误: db.collection is

          本文链接:https://www.haomeiwen.com/subject/tigfahtx.html