aka*_*nom 5 javascript centos node.js koa
我收到连接重置错误。我相当确定这是来自长时间运行的 REST 请求,即超时。
 { [Error: socket hang up] code: 'ECONNRESET' }
有没有办法在 Koa 中禁用请求超时,以便我可以测试这个假设?
我正在运行节点版本 5.x、koa 0.10、centOs 6
您的请求似乎比默认的 Koa 超时时间更长。默认 Koa超时为 2 分钟
我遇到了类似的问题,一个请求花费的时间超过 2 分钟。我受到zeronone这篇文章中的赞扬的启发,最后这句话对我有帮助
ctx.request.socket.setTimeout(5 * 60 * 1000); 
所以路由器中的整个代码可能看起来像
router.post('/long-request', async (ctx) => {
    // set timeout to 5 minutes
    ctx.request.socket.setTimeout(5 * 60 * 1000); 
    // do some stuf what take long time
    // but less than 5 minutes
});
我真的不建议请求花费超过 1 分钟的时间,理想情况下在单独的进程上运行繁重的工作,并通过其他请求检查工作是否完成。
所以这可能只是为了测试目的
小智 5
如果要为应用程序服务器设置超时:
let app = new Koa();
let server=app.listen(3000);
server.timeout=5*60*1000;
如果针对每个请求,正如 @m1uan 所说:
router.get("/path",async (ctx)=>{
      ctx.request.socket.setTimeout(5 * 60 * 1000); 
})