首页 > 解决方案 > 为什么我在从 ReactJS 到 MongoDB 的获取请求中得到空数组?

问题描述

我正在尝试从 React 中的 MongoDB 文档中获取所有文章。当我用 Postman 进行测试时,它在 NodeJS 的后端完美地工作。但是在 Frontend 和 React 中,我得到了空数组。如何解决这个问题。

Server.js(后端)

app.get('/api/articles', async (req, res)=>{
    const client = await MongoClient.connect('mongodb://localhost:27017', {useNewUrlParser:true, useUnifiedTopology:true})
    const db = client.db('my-blog')

    const articleInfo= await db.collection('articles').find({}).toArray(function(err, result){
        if (err) console.log(err)
        res.status(200).send(result)
        client.close()
    })
    
})

articlePage.js(前端)

componentDidMount(){
        const requestOptions = {
            method: 'GET',
            headers: { 'Content-Type': 'application/json' },
        };
        const fetchdata = fetch('/api/articles/').then(res=>res.json())
        .then(data=>this.setState({articles:data}))
        console.log(this.state.articles)

    }

在 package.json 中设置 API 地址proxy:http://localhost:8000

如何在 React 中从 MongoDB 获取文档数据?

标签: reactjsmongodb

解决方案


首先,检查 API 调用是否从 React 应用程序传递到服务器。如果有,则检查网络中的响应代码。在您的情况下,200 是您从 API 获得所需结果的地方。如果您没有得到所需的结果,请检查您的集合和文档名称以及您在查询中传递的参数。


推荐阅读