MongoDB 6.0运行报ReferenceError: data is not defined如何修复
问题修复方案
报错根因
mongoose.connect()执行成功后返回的连接实例需要通过then()回调的参数接收,你代码中直接使用了未声明的data变量,因此触发ReferenceError。
修复代码
替换你的database.js为以下内容即可:
const mongoose = require("mongoose"); const connectDatabase = () => { mongoose.connect(process.env.DB_URI) .then((data) => { // 新增data参数接收连接返回的实例对象 console.log(`Mongodb connected with server: ${data.connection.host}`); }) .catch((err) => { console.log(err) }) } module.exports = connectDatabase
额外注意事项
- MongoDB 6.0+适配的Mongoose版本默认已经开启
useNewUrlParser、useUnifiedTopology等兼容配置,无需额外在connect方法中传入配置参数 - 请确保你的项目入口文件(如报错信息中的
server.js)最顶部已经引入dotenv加载环境变量,示例如下:
同时确认项目根目录存在require('dotenv').config() // 后续再引入其他依赖和启动逻辑.env文件,且文件内已正确配置DB_URI为你的MongoDB连接地址。
内容的提问来源于stack exchange,提问作者Minh Tuấn Ngô
相关产品推荐
相关产品推荐

