服务器未将 JSON 从 Express 返回到 React(代理)

Posted

技术标签:

【中文标题】服务器未将 JSON 从 Express 返回到 React(代理)【英文标题】:Server not returning JSON from Express to React (proxy) 【发布时间】:2017-11-28 06:03:05 【问题描述】:

我正在尝试制作一个具有 React 前端(在端口 8080 上运行)和 Express-Node.js 后端(在端口 3000 上)的应用程序。我想让我的客户使用fetch 从我的服务器请求数据。到目前为止,我在网上看到的内容表明我需要在我的package.json 中添加一个proxy 条目,其值为http://localhost:3000。我已经这样做了,我的服务器正确接收到请求,但它的响应不是我所期望的(一个 JSON 对象)。我做错了什么?

//Server
app.get('/search', function(req, res) 
...
      //console.log(section) <-- Is the correct value
      res.json(section);
    )
...
app.listen(3000)


//Client
  handleTouchTap() 
    fetch('/search?crn=10001').then(function(response)  //<-- Hard-coded for testing
      return response; //<-- Does not contain the value of "section" from server
    ).then(function(data) 
            console.log(data); //<-- Likewise, does not contain the value
    );
  

//From package.json
...
    "proxy": "http://localhost:3000",
...

【问题讨论】:

【参考方案1】:

您需要将json 拉出您的response:

fetch('/search?crn=10001')
  .then(response => response.json())
  .then(section => console.log(section));

【讨论】:

以上是关于服务器未将 JSON 从 Express 返回到 React(代理)的主要内容,如果未能解决你的问题,请参考以下文章

未将图像从 json 文件加载到我的列表视图

ASP.NET MVC 核心 POST 请求未将 JSON 数据转换为模型

在 Node.js/Express.js 中,如何将 JSON 对象从服务器传输到客户端?

列出服务器上的静态内容并使用 Express 将其作为 JSON 返回

Jquery datatable 1.10.16 未将 Json 响应绑定到表

Visual Studio 2019 未将引用的项目添加到 deps.json