Javascript 避免在Node.js/Express server中中止需要很长时间的http请求
我在React/Nodejs应用程序中遇到http请求问题。当我尝试执行一个在向客户端发送响应之前需要很长时间(如4分钟或更长时间)的请求时,请求被中止。是否有任何超时请求或我没有考虑的事情? 这是我的POST请求的响应:Javascript 避免在Node.js/Express server中中止需要很长时间的http请求,javascript,node.js,express,Javascript,Node.js,Express,我在React/Nodejs应用程序中遇到http请求问题。当我尝试执行一个在向客户端发送响应之前需要很长时间(如4分钟或更长时间)的请求时,请求被中止。是否有任何超时请求或我没有考虑的事情? 这是我的POST请求的响应:加载资源失败:net::ERR\u EMPTY\u response 是否需要使用AbortController处理某些问题?编辑:查看我的答案标题以集中问题。 我在我的Express.js中找到了一个使用setTimeout()的解决方案。问题是由于默认的快速超时导致服务器中
加载资源失败:net::ERR\u EMPTY\u response
是否需要使用AbortController处理某些问题?编辑:查看我的答案标题以集中问题。 我在我的Express.js中找到了一个使用
setTimeout()
的解决方案。问题是由于默认的快速超时导致服务器中止
我在服务器中添加了这段代码来解决它。希望这对某人有用:
const timeOut = 1000 * 60 * 10;
app.use((req, res, next) => {
req.setTimeout(timeOut, () => {
const error = new Error('Request Timeout.');
err.status = 408;
next(error);
});
res.setTimeout(timeOut, () => {
const error = new Error('Request has expired.');
err.status = 503;
next(error);
})
next();
});
编辑:查看我的答案标题以集中问题。 我在我的Express.js中找到了一个使用
setTimeout()
的解决方案。问题是由于默认的快速超时导致服务器中止
我在服务器中添加了这段代码来解决它。希望这对某人有用:
const timeOut = 1000 * 60 * 10;
app.use((req, res, next) => {
req.setTimeout(timeOut, () => {
const error = new Error('Request Timeout.');
err.status = 408;
next(error);
});
res.setTimeout(timeOut, () => {
const error = new Error('Request has expired.');
err.status = 503;
next(error);
})
next();
});
我猜您的服务器正在终止http请求,而不是客户端。当发送http请求时,我会在服务器中启动一个批处理过程,就像在try-catch块
wait-spawn(os_shell,['/c',runFile],{stdio:'inherit'})中那样代码>我正在节点中使用等待繁殖模块。express或您正在运行的任何程序的超时时间是多少?是的,我正在使用express。如何检查或设置超时?我猜您的服务器正在终止http请求,而不是客户端。当发送http请求时,我在服务器中启动一个批处理过程,就像在try-catch块Wait-spawn(os_shell,['/c',runFile],{stdio:'inherit'})中那样代码>我正在节点中使用等待繁殖模块。express或您正在运行的任何程序的超时时间是多少?是的,我正在使用express。如何检查或设置超时?