【问题标题】:React.js pending 4 min before gets response from Express.js backand restful apiReact.js 等待 4 分钟,然后从 Express.js backand restful api 获得响应
【发布时间】:2018-12-11 15:09:52
【问题描述】:

我正在开发一个简单的页面构建器应用程序,它在前端使用 React,在后端使用 Express。 作为 Ajax 库,我使用 Axios npm 包。下面你可以看到与这个问题相关的代码:

###########
PageList.js
###########
.
.
.
componentDidMount() {
          axios.get('/admin/pages')
          .then(response => {
             console.log(response.data);
         })
         .catch(err => {
             console.log(err);
         })
    })
}
.
.
.

这是前端部分。在后端,我的路由器可以正常工作,即将我路由到这个控制器(我可以从服务器端控制台上的日志中看到):

####################
controllers/admin.js
####################
.
.
.
exports.getPages = (req, res, next) => {
    Page.find()
        .then(pages => {
            return pages;
        })
        .catch(err => {
            console.log(err)
        });
};
.
.
.

前端和后端都作为节点应用程序在 Windows 机器上的 localhost 上运行,在不同的端口上运行。我最初遇到了这个 CORS 问题,我用 cors npm 包解决了这个问题。作为数据库管理员,我使用 mongodb 和 mongoose ODM。

我遇到的问题是,当我向所有后端端点发送 Ajax 请求时,应用程序会堆叠 4 分钟(确切地说,我不知道为什么...) -end 工作,它记录我设置的所有控制台,如果它是一个 POST 请求,它会在 DB 中写入文档,但它会等待 4 分钟,然后前端会提示请求已成功。在此期间,开发工具 --> 网络选项卡中的请求处于待处理状态。

我可以创建一个 git-hub 存储库,但我仍然没有隐藏所有这些敏感信息,即它们仍然在应用程序的某些地方进行硬编码,因此公开访问这些资源是有风险的我用。 所以,如果有人能提前告诉我可能是什么问题,我会很高兴。

谢谢

【问题讨论】:

  • 不应该是这样的:.then(pages => res.send(pages))?
  • 我会使用通常的调试技巧,专注于缩小问题的可能原因。你可以例如在 Page.find() 调用之前和之后在exports.getPages 中添加当前时间的console.log。如果这仍然需要 4 分钟,则问题出在您的 Page 实现或 Mongodb 中。尝试直接在 Mongodb 主机本地和从 Node 主机远程向 Mongodb 发出基本相同的请求(从命令行)。等等。
  • 作为@patrick-hund - 你错过了 res.send()。我敢打赌你会在 4 分钟后超时,没有成功响应。
  • 嘿,@Patrick Hund ...非常感谢...完全错过了...正如你所说...
  • ????????很高兴为您提供帮助

标签: javascript node.js reactjs express


【解决方案1】:

您忘记实际发送从数据库中检索的数据。因此,您的服务器会在 4 分钟后超时。

您可以通过调用res.sendres.json 来解决此问题,如下所示:

####################
controllers/admin.js
####################
.
.
.
exports.getPages = (req, res, next) => {
    Page.find()
        .then(pages => res.send(pages))
        .catch(err => {
            console.log(err)
        });
};
.
.
.

【讨论】:

    猜你喜欢
    • 2019-10-13
    • 1970-01-01
    • 2018-02-05
    • 2019-06-17
    • 2018-11-13
    • 2021-10-13
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    相关资源
    最近更新 更多