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) 在较
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;
});
};