Mongoose调用products.find()触发缓冲超时10000ms问题求助
Mongoose调用products.find()触发缓冲超时10000ms问题求助
各位好,我最近在Express.js项目里用Mongoose操作MongoDB Atlas的时候遇到了个头疼的问题——调用products.find()时总是触发缓冲超时错误,错误信息是:
{"message":"Operation
products.find()buffering timed out after 10000ms"}
先给大家说下我的项目基础环境:
- 数据库:MongoDB Atlas
- 后端:Node.js + Express.js
- ODM:Mongoose
- 开发环境:本地localhost:5000
下面是我的关键代码片段:
主入口文件(Server.js)
const express = require("express"); const cors = require("cors"); const helmet = require("helmet"); const mongoose = require("mongoose"); const dotenv = require("dotenv"); const cart = require("../Backend/Routes/cartRoute"); const contact = require("./Routes/contactRoute"); const order = require("./Routes/orderRoute"); const product = require("./Routes/productRoute"); const subscription = require("./Routes/subscriptionRoute"); dotenv.config(); const app = express(); app.use(cors()); app.use(express.json()); app.use(helmet()); mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true }).then(() => { console.log("Connected to MongoDB"); }).catch((err) => { return console.log("Error Message:", err) }); app.use("/products", product) const PORT = process.env.PORT || 5000; app.listen(PORT, () => { return console.log("Server is running on port 5000") })
产品路由文件(Routes/productRoute.js)
const express = require("express"); const router = express.Router(); const Product = require("../Models/Product"); router.get("/", async(req,res) => { try{ const products = await Product.find(); res.json(products); }catch(error){ res.json({message: error.message}) } }); router.get("/:id", async(req,res) => { try{ const product = await Product.findById(req.params.id); if(!product) return res.json({"msg": "No Products Found"}); res.json(product); }catch(error){ res.json({message: error.message}) } }); module.exports = router;
产品模型文件(Models/Product.js)
const mongoose = require("mongoose"); const productSchema = new mongoose.Schema({ name: {type: String, required: true }, price: {type: String, required: true }, description: {type: String, required: true }, image: {type: String, required: true } }) module.exports = mongoose.model("Product", productSchema);
环境变量(.env)
MONGO_URI=mongodb+srv://VPPandey08:XYZ@water-can.4rcsinb.mongodb.net/VPPandey?retryWrites=true&w=majority&appName=YourAppName
我已经尝试过的排查步骤:
- ✅ 确认MongoDB Atlas集群处于运行状态
- ✅ 检查过数据库名称确实存在
- ✅ 验证了连接字符串的格式是正确的
- ✅ 服务器日志里已经显示“Connected to MongoDB”,看起来连接是成功的
现在我有几个疑问想请教大家:
- 明明连接成功了,为什么
find()操作还是会超时? - 这种缓冲超时的具体触发原因可能有哪些?
- 是否需要在Mongoose连接时添加额外的配置选项来解决这个问题?
- 针对这类MongoDB连接问题,有没有更有效的调试方法?
补充环境细节:
- Node.js版本:[请补充你的版本]
- Mongoose版本:[请补充你的版本]
- MongoDB Atlas:最新版
- 操作系统:[请补充你的操作系统]
额外说明:不仅是/products路由,/products/:id路由执行数据库操作时也会触发同样的缓冲超时错误,所有数据库操作都没法正常执行。
内容来源于stack exchange
相关产品推荐
相关产品推荐

