1. 程式人生 > >mongoose 通過賬號密碼連線 Error: Password contains an illegal unescaped character

mongoose 通過賬號密碼連線 Error: Password contains an illegal unescaped character

mongoose 遠端連線,我的密碼有亂七八糟的字元,報錯Error: Password contains an illegal unescaped character

報錯的

  mongodb: 'mongodb://c666:buyaokan###@ccav.com:27017/zh_db',

改成下面,就好啦

  mongodb: 'mongodb://' + encodeURIComponent('c666:buyaokan###') + '@ccav.com:27017/zh_db',

不要嘗試破解額。

上面的方法可以不報錯,但是實際用的時候,發現會報錯

name: 'MongoError',
message: 'Authentication failed.',
ok: 0,
errmsg: 'Authentication failed.',
code: 18,
codeName: 'AuthenticationFailed' }

下面才是解決之道 user 要使用建立的admin賬號使用者名稱

mongoose.connect(mongoDbUri, {
    auth: { "authSource": "admin" },
    user: "c666",
    pass: "c666:buyaokan###",
    poolSize: 10
  })

特別注意 auth: { "authSource": "admin" }中的authSource新增你對應建立的資料庫。