一般是这么连接的:
mongoose.connect("mongodb://username:[email protected]:27017/db");
但是,如果你的密码里面设置了特殊字符,比如‘@’,‘%’,可能使得 mongodb 连接不能被正常解析,字符转义也没什么效果,从而导致连接失败。
有2个方法可以规避这个问题:
1.更换连接格式
mongoose.connect(
"mongodb://username:[email protected]:27017/db",
{user: 'username', pass: 'password'}
);
2.开启 uri_decode_auth 功能
uri_decode_auth 在 driver 内部 decode连接串
mongoose.connect(
"mongodb://username:[email protected]:27017/db",
{
uri_decode_auth: true
},
function(err, db) {}
);