我尝试使用我的系统中的Mongoose连接到mLab,但它仍然因以下错误而失败
name: 'MongoError',
message: 'failed to connect to server [server address here] on first connect' }
这是我的代码:
var mongoose = require('mongoose')
var Schema = mongoose.Schema;
var options = {
server: { socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 } },
replset: { socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 } }
};
mongoose.connect('mongodb://username:password@server.mlab.com:port/appname', options);
var conn = mongoose.connection
conn.on('error', console.error.bind(console, 'connection error:'));
var User = mongoose.model('User', new Schema({
name: String,
username: { type: String, required: true, unique: true },
password: { type: String, required: true },
admin: Boolean,
location: String,
created_at: Date,
updated_at: Date
}));
var new_user = new User({
name: 'name',
username: 'username',
password: 'password'
});
conn.once('open', function() {
console.log('started')
new_user.save(function(err) {
if (err) throw err;
console.log('User created!');
});
});
请告诉我如何成功连接到mLab。
答案 0 :(得分:1)
我刚才也面临同样的问题。在我的情况下,我通过VPN连接到我的办公室网络,它被阻止了。
解决方案: - 我从VPN断开连接并运行命令进行连接并能够连接。 希望它有所帮助!
答案 1 :(得分:0)
我遇到了通过MongoDB URI连接并与之联系的相同问题。问题是我在我的密码中包含了一个特殊字符(@),并且解析器将其视为分隔符,因此密码被解析错误。他们建议不要在密码中包含任何特殊字符,这样就可以了。
答案 2 :(得分:0)
我有类似的问题。对我来说,错误是由用户ID和密码错误的分隔符
引起的mongodb://myuseridmypassword@ds112345.mlab.com:12345 / mydb [错] mongodb://myuserid/mypassword@ds112345.mlab.com:12345 / mydb [错] mongodb:// myuserid:mypassword@ds112345.mlab.com:12345 / mydb [right]
当节点应用程序成功连接到MongoDB时,格式不正确的URI导致驱动程序跳过身份验证。当我随后尝试插入记录身份验证失败时