它出现以下错误 -
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]应用程序崩溃 - 在开始之前等待文件更改...
答案 0 :(得分:1)
这是一个非常古老的问题,但由于还没有人回答这个问题。
我们经常看到用户使用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连接。
希望我帮助过:)