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

mongoose.connect()参数错误:MongoDB Atlas连接失败排查求助

连接MongoDB Atlas时process.env.MONGO_URI返回undefined的问题

运行mongoose.connect()时触发错误,process.env.MONGO_URI被识别为undefined,报错信息如下:

MongooseError: The uri parameter to openUri() must be a string, got "undefined". Make sure the first parameter to mongoose.connect() or mongoose.createConnection() is a string.

相关文件内容如下:

1. config.env文件(MONGO_URI从Atlas复制)

MONGO_URI = mongodb+srv://kpae:XXXX@practice.xujsvaf.mongodb.net/?retryWrites=true&w=majority

2. app.js文件

const express = require('express')
const dotenv = require('dotenv')
const connectDB = require('./config/db')

dotenv.config({ path: '.config/config.env' })

connectDB()

const app = express()


const PORT = process.env.PORT || 5000

app.listen(
    PORT, 
    console.log(`Server running in ${process.env.NODE_ENV} mode on port ${PORT}`)
)

3. db.js文件

const mongoose = require('mongoose')

const connectDB = async () => {
    try {
        const conn = await mongoose.connect(process.env.MONGO_URI, {
            useNewUrlParser: true,
            useUnifiedTopology: true,
            useFindAndModify: false
        })

        console.log(`MongoDB Connected: ${conn.connection.host}`)
    } catch (err) {
        //console.log('this is an error')
        console.error(err)
        process.exit(1)
    }
}


module.exports = connectDB

问题排查与解决方案

  • 修正dotenv文件路径:你在dotenv.config()中指定的路径是.config/config.env,但说明里提到文件都在根目录下,正确路径应为./config.env,调整后代码如下:
    dotenv.config({ path: './config.env' })
    
  • 规范.env文件格式:建议移除MONGO_URI等号两侧的空格,写成MONGO_URI=mongodb+srv://...,避免潜在的解析问题。
  • 确认依赖安装:执行npm install dotenv确保dotenv依赖已正确安装。
  • 重启服务验证:修改配置文件后必须重启Node.js服务,否则新配置不会生效。
  • 检查变量加载状态:在connectDB()调用前添加console.log(process.env.MONGO_URI),查看是否能正确输出URI,确认环境变量是否成功加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:37:26