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

Node.js中无法断开Mongoose与MongoDB连接的问题求助

问题原因与解决方案
  • 核心问题:你没有等待Cat.create()这个异步操作完成就断开了数据库连接。Cat.create()返回的是Promise,不加await的话,代码会直接跳到断开连接的步骤,此时创建文档的操作还未执行,连接断开后自然触发报错。
  • 修复后的代码:
const mongoose = require('mongoose');

async function run() {
    const connection = await mongoose.connect("mongodb://****:******@127.0.0.1:27017/test_database_1");
    const CatSchema = mongoose.Schema(
        {
            name: String
        }
    )
    const Cat = mongoose.model('Cat', CatSchema, 'Cat')
    // 关键:添加await等待文档创建完成
    const kitty = await Cat.create({ name: 'Cat' });
    await connection.disconnect();
}

run()
  • 补充说明:报错信息看似有误导性,实则是因为断开连接的时机早于数据库操作的执行时机,当创建文档的操作发起时,连接已经关闭,所以提示“客户端必须连接才能执行操作”。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:32:04