使用.env变量连接MongoDB时出现Bad auth err错误求助
问题原因与解决方法
问题根源
你在.env文件里给DB_conn的值加了单引号,process.env读取时会把这对单引号也包含到字符串里,导致实际传递给mongoose的连接字符串是带首尾单引号的版本(比如'mongodb+srv://gotham:password@...')。MongoDB会把这些单引号当成认证信息的一部分,自然就出现了Bad auth错误。
解决步骤
- 修改.env文件:去掉
DB_conn值的单引号,同时规范键值对格式(=前后不要加空格,避免潜在解析问题):
DB_conn=mongodb+srv://gotham:password@journal.4ok3oge.mongodb.net/journal?retryWrites=true&w=majority port=5000
重启Node.js服务:因为
dotenv是在服务启动时加载.env文件的,修改后必须重启才能读取新的配置值。可选排查步骤:在代码里加一行日志,确认读取到的连接字符串是否正确:
console.log('当前连接字符串:', url);
如果输出的字符串不带多余引号,说明配置读取正常。
内容的提问来源于stack exchange,提问作者Gow Tham
相关产品推荐
相关产品推荐

