ниже, но я звоню из модуля паспорта 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();
};
Никогда не появляется специально сгенерированное сообщение об ошибке.