Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用Express和connect timeout定制超时响应?_Node.js_Express_Connect Timeout - Fatal编程技术网

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