Экспресс-ошибка промежуточного ПО - это не ошибка из модуля Passport Instagram - PullRequest
0 голосов
/ 04 апреля 2019

ниже, но я звоню из модуля паспорта Instagram

done(new SnsError('your login is disabled'));
Ниже мой пользовательский класс ошибок

function SnsError(msg) {
  Error.call(this);
  if (Error.captureStackTrace) {
    Error.captureStackTrace(this);
  } else {
    this.stack = new Error().stack;
  }
  this.message = msg;
  this.name = 'SnsError';
  return this;
}


SnsError.prototype = Object.create(Error.prototype);
SnsError.prototype.constructor = Error;
module.exports = SnsError;

Ниже приведен мой экспресс-обработчик ошибок, который помещается внизу файла после всего файла app.use, как указано в различных сообщениях о переполнении стека.

const SnsError = require('./SnsError');
module.exports = function (error, req, res, next) {
  if (!(err instanceof Error)) {
    next(err);
  }
  if (err instanceof SnsError) {
    return res.status(err.code).json(err.message);
  }
  next();
};

Никогда не появляется специально сгенерированное сообщение об ошибке.

...