You need to enable JavaScript to run this app. 尝试从Mongo读取数据时后端无法正常获取数据该如何排查
优惠活动
大模型
产品
解决方案
定价
更多

尝试从Mongo读取数据时后端无法正常获取数据该如何排查

问题排查与修复方案

一、后端接口问题修复

你当前的/postsGET接口存在两个核心错误:

  • GET请求本身没有有效请求体(req.body),你直接返回req.body自然拿不到任何存储在Mongo的数据
  • 你已经完成了Mongo连接,但完全没有执行查询操作,没有读取数据库里的posts集合数据

修复后的后端代码:

app.get ('/posts', async (req , res) => {
  let db = await connect();
  // 从Mongo的posts集合查询所有数据,集合名按你实际存储的名称修改
  let posts = await db.collection('posts').find().toArray();
  res.send(posts); 
});

二、服务层代码问题修复

当前服务层代码存在两个错误:

  • Service.get方法需要传入字符串类型的接口路径,你写的/posts是正则表达式,属于语法错误
  • 后端返回的是posts数组,不能直接取response.doc,需要根据接口返回结构调整,如果是查单个帖子可以追加ID参数,如果是查列表需要遍历处理

修复后的服务层代码(以获取全部帖子列表为例):

async get_posts() {
    // 路径改为字符串类型
    let response = await Service.get('/posts')
    // 接口返回的是数组,遍历处理每一项
    return response.data.map(doc => ({
        id: doc._id,
        email: doc.email,
        title: doc.title,
        imageDesc: doc.imageDesc,
        img: doc.img,
    }));
}

补充验证点

  • 确认你的Mongo连接方法connect()返回的是正常的数据库实例,没有连接报错
  • 确认你存储数据的集合名和查询时的集合名完全一致,区分大小写
  • 可以先在浏览器直接访问http://你的后端地址/posts,看是否能返回JSON格式的帖子数据,先验证后端接口是否正常,再调试前端服务层代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 03:45:07