一般是這麼連線的:
mongoose.connect("mongodb://username:password@127.X.X.X:27017/db");
但是,如果你的密碼裡面設定了特殊字元,比如‘@’,‘%’,可能使得 mongodb 連線不能被正常解析,字元轉義也沒什麼效果,從而導致連線失敗。
有2個方法可以規避這個問題:
1.更換連線格式
mongoose.connect(
"mongodb://username:password@127.X.X.X:27017/db",
{user: 'username', pass: 'password'}
);
複製程式碼
2.開啟 uri_decode_auth 功能
uri_decode_auth 在 driver 內部 decode連線串
mongoose.connect(
"mongodb://username:password@127.X.X.X:27017/db",
{
uri_decode_auth: true
},
function(err, db) {}
);
複製程式碼