Mongoose在连接时使用mongolab uri时出错?

它给出了以下错误 –

mongoose connection error: { [MongoError: connect EINVAL] name: 'MongoError', message: 'connect EINVAL' } /home/user/Documents/oes/node_modules/connect-mongo/node_modules/mongodb/lib/server.js:228 process.nextTick(function() { throw err; }) ^ Error: connect EINVAL at errnoException (net.js:905:11) at connect (net.js:767:19) at net.js:846:9 at asyncCallback (dns.js:68:16) at Object.onanswer [as oncomplete] (dns.js:121:9) 

6月14日18:04:11 – [nodemon]应用程序崩溃 – 正在等待文件更改开始之前…

这是一个很老的问题,但是还没有人回答。

我们经常看到用户在使用Mongoose驱动程序连接到MongoLab时遇到问题。 根本原因几乎总是不正确的驱动程序configuration,特别是在超时。 以下是使用MongoLabbuild议的驱动程序选项的连接示例:

 // mongoose 4.3.x var mongoose = require('mongoose'); /* * Mongoose by default sets the auto_reconnect option to true. * We recommend setting socket options at both the server and replica set level. * We recommend a 30 second connection timeout because it allows for * plenty of time in most operating environments. */ var options = { server: { socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 } }, replset: { socketOptions: { keepAlive: 300000, connectTimeoutMS : 30000 } } }; var mongodbUri = 'mongodb://user:pass@host:port/db'; mongoose.connect(mongodbUri, options); var conn = mongoose.connection; conn.on('error', console.error.bind(console, 'connection error:')); conn.once('open', function() { // Wait for the database connection to establish, then start the app. }); 

如果这没有帮助,请确保您的密码或用户名没有任何特殊字符,请尝试通过首先连接CMD。

希望我帮助:)