MongoDB与后端连接失败:URI需包含主机名、域名及顶级域名报错
MongoDB连接失败报错解决:URI必须包含主机名、域名和TLD
问题原因
你的MongoDB连接URI中,密码部分包含了@符号,这会干扰URI的解析逻辑——@原本是用来分隔「用户名:密码」和「主机地址」的标识,解析器会错误地把密码里的@当作分隔符,导致无法正确识别主机名、域名,从而触发该报错。
解决方法
将密码中的@替换为URL转义字符%40,修改后的连接URI如下:mongodb+srv://rahulghatge166:Rahul%40210519@cluster0.yqgqska.mongodb.net/Booking?retryWrites=true&w=majority
修改后的完整代码:
const connect = async () => { try{ await mongoose.connect('mongodb+srv://rahulghatge166:Rahul%40210519@cluster0.yqgqska.mongodb.net/Booking?retryWrites=true&w=majority'); console.log('Connected to MongoDb') }catch(error) { throw error } } mongoose.connection.on('disconnected', () => { console.log('mongoDb disconnected') }) mongoose.connection.on('connected',() => { console.log('mongoDb is connected') })
额外检查项
- 确认MongoDB Atlas集群已将当前服务器的IP地址加入允许访问列表(如果部署在远程服务器)
- 核对URI中的集群地址
cluster0.yqgqska.mongodb.net是否拼写正确
内容的提问来源于stack exchange,提问作者Rahul Ghatge
相关产品推荐
相关产品推荐

