Node.js Express连接MongoDB失败:mongodb+srv URI端口错误排查
解决MongoDB+srv URI含端口号的报错问题
报错信息
MongoDB connection error: MongoParseError: mongodb+srv URI cannot have port number
问题分析
错误核心:mongodb+srv协议的连接URI不允许手动指定端口号。你从MongoDB Atlas复制的连接串本身是合规的(无端口),问题出在项目代码对连接字符串的处理逻辑上。
排查与解决步骤
检查项目中MongoDB连接代码(常见于
db.js、config/database.js等文件),确认是否存在手动给DB_CLUSTER拼接端口的错误逻辑,比如这类写法:// 错误示例:多余添加了端口 const dbUri = `${process.env.DB_CLUSTER}:27017`; mongoose.connect(dbUri);mongodb+srv会自动解析集群的节点和端口信息,无需额外指定端口。确认
.env文件中DB_CLUSTER未被误加端口,且代码没有重复拼接DB_USER/DB_PASS到已包含账号密码的DB_CLUSTER中,避免出现格式错误。正确的连接代码示例:
const mongoose = require('mongoose'); const connectDB = async () => { try { await mongoose.connect(process.env.DB_CLUSTER); console.log('MongoDB连接成功'); } catch (err) { console.error('MongoDB connection error:', err); process.exit(1); } }; module.exports = connectDB;修改后重启项目,验证连接是否正常。
内容的提问来源于stack exchange,提问作者Alice
相关产品推荐
相关产品推荐

