You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mongoose报错openUri的uri参数为undefined,已确认mongoURI是字符串如何解决

问题原因
  • 核心问题为变量名大小写不匹配:JavaScript对象的键名区分大小写,你在config/keys.js中导出的配置项键名为小驼峰格式的mongoURI,但在data/mongodb.js调用mongoose.connect时错误使用了全大写的keys.MONGO_URI,因此获取到的值为undefined,直接触发参数类型报错。
  • 你打印的typeof(keys.mongoURI)返回字符串类型,也可以佐证mongoURI本身是正常导出的,问题仅出在调用时的键名错误。
  • 潜在问题:config/keys.js的连接串中<password>为占位符,若未替换为MongoDB Atlas对应账号的真实密码,后续会触发认证报错。
解决方法
  1. 修正调用时的键名:将data/mongodb.js中mongoose.connect的第一个参数修改为keys.mongoURI,修改后的代码如下:
const conn = await mongoose.connect(keys.mongoURI, {
    useUnifiedTopology: true,
    useNewUrlParser: true                    
})
  1. 替换数据库密码占位符:将config/keys.js连接串中的<password>替换为MERN_dev用户对应的真实数据库密码,注意删除尖括号。
  2. 确认导出语法合法:config/keys.js中的other parameters为示例内容,实际需遵循JS对象语法编写配置项,保证导出格式正确。

内容的提问来源于stack exchange,提问作者user17348611

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:54:03