node.js - Express 和 Node.js 超时

标签 node.js express

我希望对我的回复设置超时。我尝试了以下方法:

var timeout = express.timeout // express v3 and below

app.use(timeout(120000));
app.use(haltOnTimedout);

function haltOnTimedout(req, res, next){
  if (!req.timedout) next();
}

问题是有些请求需要超过120000 ms(下载大文件),但没问题。我只想使应用程序(服务器)和客户端之间的流上没有传输任何信息的请求超时。

上面的代码关闭了所有连接,这需要超过 120000 毫秒

最佳答案

您可以设置消息本身的超时时间(如果没有数据传输,则会调用该超时)

req.connection.setTimeout(120000, function () { res.status(500).end(); });

https://nodejs.org/api/http.html#http_message_settimeout_msecs_callback

编辑:

我已添加 500 状态代码

关于node.js - Express 和 Node.js 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484389/

相关文章:

javascript - 如何在 Mongoose 中保存一个objectID数组并添加字段?

javascript - socket.io 无法在 Express app.post 回调中发出

express - 浏览器不为显式域保存 cookie

javascript - 在node.js中,如果使用createReadStream()还需要response.end()

javascript - Socket.io - 无法连接到客户端

javascript - Set-Cookie header 未发送

javascript - 如何使用nodejs和expressjs在mysql上显示数据

javascript - ExpressJS 子类在回调中缺少继承的属性和属性

javascript - 在 Nodejs 中的循环内解析 body.req

javascript - JSON 键作为 JavaScript 中的 JSON 值