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

Node.js 哪些参数传递给MongoClient.connect回调?,node.js,mongodb,Node.js,Mongodb,根据,参数为: url(字符串)–MongoDB的连接url [选项](对象)–插入命令的可选选项 回调(函数)–执行此方法后将调用此函数。如果发生错误,第一个参数将包含Error对象,否则为null。而第二个参数将包含初始化的db对象,如果发生错误,则为null 但根据,前两个参数相同,但传递给回调函数的参数不同。传递给回调的第二个参数是MongoClient实例 哪一个是正确的?当我测试时,第二个源代码似乎是正确的,但我希望第一个是正确的。在旧版本1.x或2.x中,回调(err,db) 在较

根据,参数为:

  • url(字符串)–MongoDB的连接url
  • [选项](对象)–插入命令的可选选项
  • 回调(函数)–执行此方法后将调用此函数。如果发生错误,第一个参数将包含Error对象,否则为null。而第二个参数将包含初始化的db对象,如果发生错误,则为null
  • 但根据,前两个参数相同,但传递给回调函数的参数不同。传递给回调的第二个参数是
    MongoClient
    实例


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

    在旧版本1.x或2.x中,
    回调(err,db)

    在较新版本3.x中,
    回调(err,mongoClient)

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


    注意:您可以在特定版本文档中使用。并不是说
    选项
    标记为可选。这基本上意味着函数除了必须的
    uri
    之外,还可以选择接受不同的参数。此外,
    回调
    也是可选的,因为调用以返回
    承诺
    也是一个“选项”。唯一需要注意的是,如果您忽略了
    useNewUrlParser
    选项,当前您将收到警告,直到驱动程序主版本更改,“新解析器”移动到默认值。我对
    useNewUrlParser
    并不感到困惑,顺便说一句,感谢您的响应。重点不在于“仅仅”该选项,但是如何连接的基本语法。自从你提出这个问题以来,你似乎对此感到困惑。如前所述,文档和链接的示例在语法上非常清楚。但我希望它是早期的方式。因为我想要的是db实例,而不是MongoClient实例。我不想使用mongooseCan,请明确说明您想要使用什么?
    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;
        });
    };