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

首次使用MongoDB与Mongoose遇错误:peoples.insertOne()缓冲超时10000ms

解决Mongoose操作缓冲超时问题

你遇到的MongooseError: Operation peoples.insertOne() buffering timed out after 10000ms错误,核心原因是数据库连接还没建立完成,就执行了数据保存操作——Mongoose的connect是异步方法,代码里直接在调用connect后就执行people.save(),此时连接可能还在建立中,导致操作被缓冲后超时。

修复方案

可以通过以下两种方式确保连接完成后再执行数据库操作:

方式1:使用async/await

import mongoose from "mongoose";

mongoose.set("strictQuery", false);

// 用async函数包裹逻辑
async function start() {
  try {
    await mongoose.connect("mongodb://localhost:27017/peopleDB", { useNewUrlParser: true });
    console.log("MongoDB is connected");

    const peopleSchema = new mongoose.Schema({
      name: String,
      age: Number,
    });

    const People = mongoose.model("People", peopleSchema);

    const people = new People({ name: "John", age: 37 });
    await people.save();
    console.log("数据保存成功");
  } catch (err) {
    console.error("连接或保存失败:", err);
  }
}

start();

方式2:使用Promise的then方法

import mongoose from "mongoose";

mongoose.set("strictQuery", false);

mongoose.connect("mongodb://localhost:27017/peopleDB", { useNewUrlParser: true })
  .then(() => {
    console.log("MongoDB is connected");

    const peopleSchema = new mongoose.Schema({
      name: String,
      age: Number,
    });

    const People = mongoose.model("People", peopleSchema);

    const people = new People({ name: "John", age: 37 });
    return people.save();
  })
  .then(() => {
    console.log("数据保存成功");
  })
  .catch(err => {
    console.error("连接或保存失败:", err);
  });

额外注意事项

  • 确保本地MongoDB服务已经启动,端口27017正常监听
  • 如果你使用的是Mongoose 6及以上版本,useNewUrlParser已经是默认配置,可以不用显式传入

内容的提问来源于stack exchange,提问作者G raj Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:25:46