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

Node.js Mongoose在使用mongolab uri连接时出错?,node.js,mongodb,mlab,Node.js,Mongodb,Mlab,它给出了以下错误- 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 e

它给出了以下错误-

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时遇到问题。根本原因几乎总是驱动程序配置不正确,尤其是在超时时。以下是使用MongoLab推荐的驱动程序选项的连接示例:

// 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连接


希望我能帮上忙:)

确保密码中没有特殊字符的建议是很好的建议。确保您的密码中没有“@”符号。我的文件中有和@,我想它与URI模板冲突。