How to handle Error: socket hang up while waiting Node and React

How to handle Error: socket hang up while waiting Node and React

我一直在研究 NodeJS Express 路由,它接受一个 get 请求,计算和分析大约 15000 多个数据,所以当我点击 get URL,处理和分析需要超过 4 到 5 分钟,套接字挂起大约 2 分钟我应该怎么做才能让我的 React 应用程序等待更长时间或以任何其他方式获得响应。也许 HTTP 202 有它的方式,但我不知道该怎么做,有帮助吗?

明智的选择是对此类用例使用 websocket or socket-io

但你也可以:

使用快速超时。保持客户端和服务器之间的连接: 首先,安装:

npm install connect-timeout

之后更改您的服务器入口点 (app.js) 文件。

var express = require('express')
var timeout = require('connect-timeout')

// example of using this top-level; note the use of haltOnTimedout
// after every middleware; it will stop the request flow on a timeout
var app = express()
app.use(timeout('400s'))

app.use(haltOnTimedout)


// Add your routes here, etc.

function haltOnTimedout (req, res, next) {
  if (!req.timedout) next()
}

app.listen(3000)

更多详情:express official

或者如果您不想安装任何第三方模块:

app.use(function(req, res, next){
   res.setTimeout(120000, function(){
      console.log('Request has timed out.');
         res.send(408);
      });

      next();
 });