相关疑难解决方法(0)

Node Express特定的每条路由超时值

我正在使用Express v4.13.4开发Node v4.2.4应用程序.现在我想增加特定上传路由的超时时间.

从我读过和经历过的:

但是,在尝试为上传路由实现连接超时中间件时,我迷路了.

应用程序设置

const app = express();
app.use(cors());
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: false }));
app.use(passport.initialize());

app.use('/uploads', uploadRoutes);
app.use(errorHandler);

function errorHandler(err, req, res, next) {
  if (err.code && err.code === 'ETIMEDOUT') {
    if (!res.headersSent) {
      res
        .status(408)
        .send({
          success: true,
          message: 'Timeout error'
        });
    }
  }

  next(err);
}

const server = app.listen(config.port);
Run Code Online (Sandbox Code Playgroud)

上传路线定义

router.route('/:uploadId/upload-files')
  .post(timeout('3m'),
    require('./actions/upload-files').prepareHandler,
    require('./actions/upload-files').uploadHandler(),
    require('./actions/upload-files').responseHandler);
Run Code Online (Sandbox Code Playgroud)

但是,在上传文件时,我确实express-timeout只在命令行的控制台中看到了3分钟后的错误.请求仍在进行中,并且未返回408的状态代码.

4分钟后,我终于看到408状态和'超时错误'作为响应对象的一部分.

对于其他路线的请求,我net::ERR_EMPTY_RESPONSE在4分钟后收到错误.

如果我记录值server.timeout,则值为120000 …

sockets node.js express

6
推荐指数
2
解决办法
4964
查看次数

标签 统计

express ×1

node.js ×1

sockets ×1