哪些参数传递给MongoClient.connect回调?

时间:2019-05-21 09:28:11

标签: node.js mongodb

根据this,这些参数是:

  1. URL(字符串)– MongoDB的连接URL。
  2. [选项](对象)–插入命令的可选选项
  3. 回调(函数)–将在执行此方法后调用。如果发生错误,第一个参数将包含Error对象,否则将为null。 第二个参数将包含初始化的数据库对象;如果发生错误,则为null。

但是根据this,前两个参数是相同的,但是传递给回调函数的参数是不同的。传递给回调的第二个参数是一个MongoClient实例。

哪个是正确的?当我测试时,第二个来源似乎是正确的,但我希望第一个来源是正确的。

2 个答案:

答案 0 :(得分:1)

两者都是正确的,在旧版本1.x或2.x中,callback(err, db)

在较新的版本3.x中,callback(err, mongoClient)

如果您使用的是较新版本(不是1.x或2.x),请使用第二个版本

注意:您可以使用https://mongodb.github.io/node-mongodb-native/获取特定版本的文档

答案 1 :(得分:0)

Using below npm pack

 "mongodb": "^3.0.2",
 "mongoose": "^5.0.6"

Connect Mongo using Below Code
var db = {};
var mongoose = require('mongoose');
mongoose.connect(config.url);
//config.url is your Mongodb connection string
//Add your Model as required
db.Roles = mongoose.model("Roles",require("./schemas/roles.schema"));
//Export it to Module
module.exports = db;


You can call this common JS File

const db = require("../db");
const mongoose = require('mongoose');

//Sample Snippet change as Required

exports.getUserRoles = async (req) => {
    logger.info("Get User Roles service");
    const RoleModel = db.Roles;
    return await RoleModel.find({}, { "_id": 1, "name": 1, "features": 1 }).then(result => {
        return result
    }).catch(err => {
        throw err;
    });
};