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();
});
明智的选择是对此类用例使用 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();
});