javascript - 如何处理错误:等待 Node 和 React 时套接字挂起
问题描述
我一直在研究接受获取请求的 NodeJS 快速路由,计算和分析大约 15000 多个数据,所以当我点击获取 URL 时,从我的反应应用程序(Axios)中,处理和分析需要超过 4 到 5 分钟并且套接字挂断了大约 2 分钟我应该怎么做才能让我的反应应用程序等待更长时间或以任何其他方式获得响应。也许 HTTP 202 有它的方式,但我不知道该怎么做,有帮助吗?
解决方案
对于此类用例,明智的选择是使用websocket或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)
更多详情:快递官方
或者如果您不想安装任何第三方模块:
app.use(function(req, res, next){
res.setTimeout(120000, function(){
console.log('Request has timed out.');
res.send(408);
});
next();
});
推荐阅读
- node.js - npm install web3 安装失败: undefined ls-remote
- r - rvest 刮取空表
- javascript - 切换禁用的文本输入 onclick
- python - 寻找 RSS 和 R-Squared
- android - 如果 Bluestacks App Player 上没有“启用 USB 调试”选项,如何使用 ADB?
- python - Ipython 在使用 sympy 绘图后冻结
- c - 即使未分配所有 scanf() 值也执行程序
- postgresql - PostgreSQL 安全本地 (pg_hba.conf )
- matlab - Matlab太多输入参数以及如何设置默认值
- java - setText firebase TimeStamp 到 Android 中的 TextView