使用Mongoose v8.3.2创建文档时出错,请求技术排查
Mongoose ^8.3.2 创建文档报错排查
环境与问题
使用Mongoose版本^8.3.2,尝试创建新文档时触发错误,无法成功插入数据。
代码展示
主文件
import mongoose from "mongoose"; import User from "./script.js"; mongoose.connect("mongodb://localhost:27017/appdb") const run = async()=>{ try { const user = new User({name:"someone", age:55}) user.save() console.log(user) } catch (error) { console.log(error.message) } } run()
script.js
import mongoose from "mongoose"; const userSchema = new mongoose.Schema({ name: String, age: Number, }) export default mongoose.model("User" ,userSchema)
错误信息
错误提示为:MongooseError: Operation users.insertOne() buffering timed out after 10000ms
问题原因与解决方案
未等待数据库连接成功就执行操作
Mongoose的connect是异步操作,当前代码直接调用run()时数据库可能还未完成连接,导致操作缓冲超时。
解决:修改主文件,等待连接及保存操作完成:import mongoose from "mongoose"; import User from "./script.js"; const run = async()=>{ try { await mongoose.connect("mongodb://localhost:27017/appdb"); const user = new User({name:"someone", age:55}) await user.save() console.log(user) } catch (error) { console.log(error.message) } } run()MongoDB服务未启动
检查本地MongoDB服务是否正常运行,确保mongodb://localhost:27017地址可访问。兼容Mongoose 8.x连接配置
Mongoose 8.x默认启用了新配置,可显式添加配置项避免兼容问题:await mongoose.connect("mongodb://localhost:27017/appdb", { useNewUrlParser: true, useUnifiedTopology: true });
内容的提问来源于stack exchange,提问作者Henok
相关产品推荐
相关产品推荐

