Node.js 如何使用Express和connect timeout定制超时响应?
我想定制在触发超时错误时发送给用户的响应。更具体地说,我想将它们重定向到一个静态页面,解释触发超时错误的原因 我想写一些像: 上面的代码没有按预期工作:即使触发超时,它也不会将用户重定向到静态网页Node.js 如何使用Express和connect timeout定制超时响应?,node.js,express,connect-timeout,Node.js,Express,Connect Timeout,我想定制在触发超时错误时发送给用户的响应。更具体地说,我想将它们重定向到一个静态页面,解释触发超时错误的原因 我想写一些像: 上面的代码没有按预期工作:即使触发超时,它也不会将用户重定向到静态网页timedout.html,而是抛出错误ServiceUnavailableError:Response timeout 有可能这样做吗?或者我遗漏了什么吗?我终于找到了答案,如果有人问同样的问题,我就把它贴在这里 我在我的server.js代码的末尾放了以下代码行: app.use(haltOnTi
timedout.html
,而是抛出错误ServiceUnavailableError:Response timeout
有可能这样做吗?或者我遗漏了什么吗?我终于找到了答案,如果有人问同样的问题,我就把它贴在这里 我在我的
server.js
代码的末尾放了以下代码行:
app.use(haltOnTimedout);
function haltOnTimedout(err,req,res,next) {
if (req.timedout === true) {
if (res.headersSent) {
next(err);
} else {
res.redirect('/timedout.html');
}
} else {
next();
}
};
并在所有路由中添加
if(!req.timedout){res.send(something);}
,以避免重复发送标题。我终于找到了答案,如果有人遇到同样的问题,就把它贴在这里
我在我的server.js
代码的末尾放了以下代码行:
app.use(haltOnTimedout);
function haltOnTimedout(err,req,res,next) {
if (req.timedout === true) {
if (res.headersSent) {
next(err);
} else {
res.redirect('/timedout.html');
}
} else {
next();
}
};
并在所有路由中添加
if(!req.timedout){res.send(something);}
,以避免报头的双重发送。到底什么不起作用?您使用的是哪个express版本?对于express版本3及更低版本,您可以使用以下代码导入timeout
:var timeout=express.timeout代码>对不起,我忘了不在:“它不会将用户重定向到网页”,请参见编辑后的问题。我使用的是Express 4.10.2到底什么不起作用?您使用的是哪个express版本?对于express版本3及更低版本,您可以使用以下代码导入timeout
:var timeout=express.timeout代码>对不起,我忘了不在:“它不会将用户重定向到网页”,请参见编辑后的问题。我使用的是Express 4.10.2