ошибка обработчик не работает на 404 Swagger Express - PullRequest
0 голосов
/ 27 августа 2018

Я хочу обработать все ошибки, но на 404 ошибка - чванство использует обработчик ошибок по умолчанию, как это исправить?

(Cannot GET / api / v2) - промежуточное ПО по умолчанию

этомой код:

const SwaggerTools = require('swagger-tools');
const app = require('express')();
const SwaggerParser = require('swagger-parser');
const swaggerUi = require('swagger-ui-express');

const errorHandler = function(err, req, res, next) {
  res.send('my mega error handler')
}

module.exports = app; // for testing

let swaggerConfig = {
  appRoot: __dirname // <---
};

const swaggerDocument = './api/swagger/swagger.yaml';
app.use(errorHandler);

SwaggerParser.validate(swaggerDocument, (err, api) => {
  if (err) {
    console.error(err);
  } else {
    console.log('API name: %s, Version: %s', api.info.title, api.info.version);
    SwaggerTools.initializeMiddleware(api, (middleware) => {
      app.use(middleware.swaggerMetadata());


      // Validate Swagger requests
      app.use(middleware.swaggerValidator({
        validateResponse: true,
      }));

      app.use(errorHandler);
      app.use(middleware.swaggerRouter({ useStubs: true, controllers: './api/controllers' }));

      app.use(errorHandler);

      const showExplorer = false;
      const options = {
        validatorUrl: null,
      };

      app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(api, showExplorer, options));
      // Start the server
      const port = process.env.SERVER_PORT;
      app.listen(port, () => {
        console.log('server started at port:', port);
      });
    });
  }
});

Я пытался включить промежуточное ПО в некоторых местах, но ничего не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...