这是我的猫鼬连接代码:
mongoose.connect("mongodb+srv://Sarthak:*******:Wb@cluster0-jli2a.mongodb.net/test?retryWrites=true",{ useNewUrlParser: true })
.then(()=>{
console.log("Connected to mongo database");
})
.catch((err)=>{
console.log("Error connecting mongo database",err);
});
我收到以下错误,知道如何解决吗?
连接mongo数据库时出错{MongoParseError:权限部分中的转义冒号 在parseConnectionString(/home/sarthak/Projects/thePracticalGuide/node_modules/mongodb-core/lib/uri_parser.js:250:23) 在QueryReqWrap.dns.resolveTxt [作为回调](/home/sarthak/Projects/thePracticalGuide/node_modules/mongodb-core/lib/uri_parser.js:126:7) 在QueryReqWrap.onresolve [完成时](dns.js:240:10) 名称:“ MongoParseError”, [Symbol(mongoErrorContextSymbol)]:{}}
答案 0 :(得分:0)
错误描述非常清楚-密码中是否包含冒号?典型的连接字符串格式为“ mongodb + srv:[用户名:密码@] host1 ...”,因此未转义的冒号将引发解析错误。
答案 1 :(得分:0)
我也遇到了同样的问题,即使“逃脱的冒号”已经很明显地逃脱了。试试这个:
var uri = encodeURI('mongodb+srv://Sarthak:*******:Wb@cluster0-jli2a.mongodb.net/test?retryWrites=true');
答案 2 :(得分:0)
也尝试使用这种连接方式
/* I've removed the ":Wb" between your password and @clus... As mongoDB atlas website didn't use that in my generated connection string */
mongoose.connect("mongodb+srv://Sarthak:*******@cluster0-jli2a.mongodb.net/test?retryWrites=true",{ useNewUrlParser: true });
mongoose.connection.on('error', (err) => {
console.error(`Mongoose connection error: ${err}`);
process.exit(1);
});
要考虑的其他事项:
答案 3 :(得分:0)
只需转到Atlas网站安全选项卡并编辑用户密码,并确保您不使用“ @”或“:”。而已。
答案 4 :(得分:0)
您需要在连接字符串中编码密码:
const connectionString = `mongodb://yourUsername:${encodeURIComponent('yourPassword')}@127.0.0.1:27017/mydb`;
答案 5 :(得分:0)
我在输入连接字符串时使用 MongoDB Compass 得到“授权部分未转义的冒号”。
对于 -
我进入“创建免费集群”按钮并创建了一个集群。
然后我得到了连接字符串。但是,在输入可用的连接字符串时出现错误。
我刚刚通过登录 mongodb atlas 更改了密码。
这是我使用的程序 -->
[1] To change the password - click on encode URI
[2] It will take you here -->
[3] Click on the edit button from the screen above and change your password.
我按照上述步骤操作,并且能够登录。