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

无法通过Postman向MERN栈应用发送POST请求求助

问题分析与解决方案

这个超时错误Operation workouts.insertOne() buffering timed out after 10000ms本质是Mongoose无法连接到MongoDB数据库,和你提供的路由代码无关。Mongoose在数据库连接未建立时会缓冲操作,但超过10秒还没连上就会抛出这个错误。

排查与解决步骤:

  1. 确认MongoDB服务状态

    • 本地MongoDB:打开终端执行mongod,看服务是否正常启动;如果是MongoDB Atlas等云服务,登录控制台检查集群是否处于运行状态。
  2. 修正数据库连接逻辑
    确保主服务器文件(如server.js/app.js)里的连接代码正确,且必须在数据库连接成功后再启动服务器:

    const mongoose = require('mongoose');
    const express = require('express');
    const app = express();
    
    // 先添加JSON解析中间件,否则无法读取Postman发送的JSON数据
    app.use(express.json());
    
    // 连接MongoDB
    mongoose.connect(process.env.MONGODB_URI)
      .then(() => {
        console.log('MongoDB连接成功');
        // 连接成功后再启动服务
        app.listen(3000, () => {
          console.log('服务器运行在3000端口');
        });
      })
      .catch(err => {
        console.error('数据库连接失败:', err);
      });
    
    // 导入并挂载路由
    const workoutRoutes = require('./routes/workoutRoutes');
    app.use('/api/workouts', workoutRoutes);
    
  3. 验证连接字符串

    • 本地数据库:连接字符串格式应为mongodb://localhost:27017/你的数据库名称,确认端口(默认27017)和库名无误。
    • 云数据库:检查连接字符串中的用户名、密码、集群地址是否正确,同时确认你的IP已加入云服务的IP白名单,数据库用户拥有读写权限。
  4. 重启服务
    若以上配置都正确,尝试重启MongoDB服务和你的Express应用,有时连接缓存会导致异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:12:18