![](/img/trans.png)
[英]How can i connect to mongodb database with native nodejs without using the official MongoDB Node.js Driver?
[英]Can't connect to MongoDB database with NodeJS native driver
我有一个NodeJS应用程序,我需要在其中连接到MongoDB数据库-一个连接到单个服务器,另一个连接到副本集。 我连接到下一个很好,但是连接到第二个时,出现以下错误:
/Users/iddogino/Documents/RapidApp/node_modules/mongodb/lib/mongodb/db.js:299
throw err;
^
TypeError: Cannot set property 'auto_reconnect' of undefined
at /Users/iddogino/Documents/RapidApp/node_modules/mongodb/lib/mongodb/connection/repl_set/options.js:110:35
at Array.forEach (native)
at Options.decorateAndClean (/Users/iddogino/Documents/RapidApp/node_modules/mongodb/lib/mongodb/connection/repl_set/options.js:108:16)
at new exports.ReplSet (/Users/iddogino/Documents/RapidApp/node_modules/mongodb/lib/mongodb/connection/repl_set/repl_set.js:84:31)
at /Users/iddogino/Documents/RapidApp/node_modules/mongodb/lib/mongodb/mongo_client.js:320:30
at /Users/iddogino/Documents/RapidApp/node_modules/mongodb/lib/mongodb/db.js:296:11
at process._tickDomainCallback (node.js:459:13)
我用来连接的代码(省略用户名和真实网址之后)是:
require('mongodb').MongoClient.connect("mongodb://password@url1:port1,url2:port2/dbName?replicaSet=setName&w=0&readPreference=secondary", function(err, doc) {...});
现在,当我独自尝试此操作时(不是在将代码连接到真正的其他数据库之后),我工作得很好……有什么想法吗?
这花了我一分钟时间才弄清楚。 该错误表明问题出在./node_modules/mongodb/lib/mongodb/connection/repl_set/options.js:110
问题是options.js:91
创建一个空对象。 他们这样做是为了创建字典并为服务器删除重复的'host:port'字符串。 options.js:104
循环浏览该字典中的键,并将它们盲目地加载到数组中。 如果您在全局对象Object.prototype中添加了某些内容,这将是一个问题,因为它也会添加到最终的服务器数组中。 由于您添加到Object.prototype的所有内容可能都不是服务器,因此它没有options属性,您将收到此错误。
解决方法:找出在代码中修改了Object.prototype的地方,并使其变得不太通用。 我认为他们已经在较新版本的驱动程序中对此进行了更新,但是如果您使用的是旧版本的驱动程序,则需要解决它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.