Node.js Mongodb 密碼特殊字符 @的解決方法
在去年的 DB 勒索事件之后, 不少的同學(xué)開(kāi)始加強(qiáng) Mongodb 的安全性, 其中一種辦法就是設(shè)置復(fù)雜的密碼. 那么問(wèn)題來(lái)了, 如果設(shè)置的密碼里包含一些如 “@”, “:” 一樣的特殊字符怎么辦?
mongodb://username:password@host:port/db
這種情況可能使得你的 Mongodb 連接串不能被正常解析, 并且完全有可能出現(xiàn). 煩人的地方在于:
1.使用 “” 雙引號(hào)將 password 包起來(lái)沒(méi)有用
2,使用 \@ 轉(zhuǎn)義也沒(méi)有用
解決方案 1
開(kāi)啟 uri_decode_auth 功能, 拼接連接串之后先 encode 一下, 然后通過(guò) uri_decode_auth 在 driver 內(nèi)部 decode 來(lái)繞過(guò)這個(gè)問(wèn)題
mongoClient.connect("mongodb://username:p%40ssword@host:port/dbname", { uri_decode_auth: true }, function(err, db) { } );
解決方案2
老老實(shí)實(shí)查文檔, 在 options 中指明:
mongoose.connect('mongodb://localhost/test', {user: 'username', pass: 'p@ssword'}, callback);
以上所述是小編給大家介紹的Node.js Mongodb 密碼特殊字符 @的解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
使用async、enterproxy控制并發(fā)數(shù)量的方法詳解
并發(fā)相信對(duì)大家來(lái)說(shuō)都不陌生,這篇文章主要給大家介紹了關(guān)于使用async、enterproxy控制并發(fā)數(shù)量的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉(cāng)庫(kù)
這篇文章主要為大家介紹了Node.js包管理器代理工具Verdaccio輕松創(chuàng)建管理本地npm包倉(cāng)庫(kù)的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10NodeJS http模塊用法示例【創(chuàng)建web服務(wù)器/客戶端】
這篇文章主要介紹了NodeJS http模塊用法,結(jié)合實(shí)例形式分析了node.js創(chuàng)建web服務(wù)器與客戶端,進(jìn)行HTTP通信的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11輕松創(chuàng)建nodejs服務(wù)器(10):處理POST請(qǐng)求
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(10):處理POST請(qǐng)求,本文告訴你如何實(shí)現(xiàn)在node.js中處理POST請(qǐng)求,需要的朋友可以參考下2014-12-12