Node.js Mongodb 密码特殊字符 @的解决方法
在去年的DB勒索事件之后,不少的同学开始加强Mongodb的安全性,其中一种办法就是设置复杂的密码.那么问题来了,如果设置的密码里包含一些如“@”,“:”一样的特殊字符怎么办?
mongodb://username:password@host:port/db
这种情况可能使得你的Mongodb连接串不能被正常解析,并且完全有可能出现.烦人的地方在于:
1.使用“”双引号将password包起来没有用
2,使用\@转义也没有用
解决方案1
开启uri_decode_auth功能,拼接连接串之后先encode一下,然后通过uri_decode_auth在driver内部decode来绕过这个问题
mongoClient.connect("mongodb://username:p%40ssword@host:port/dbname",{ uri_decode_auth:true },function(err,db){ } );
解决方案2
老老实实查文档,在options中指明:
mongoose.connect('mongodb://localhost/test', {user:'username',pass:'p@ssword'}, callback);
以上所述是小编给大家介绍的Node.jsMongodb密码特殊字符@的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!