Я пытаюсь написать экспресс-промежуточное программное обеспечение, где я записываю определенные заголовки req и res и записываю их во внешнюю базу данных.
Часть этого - создание собственного обработчика ошибок, в котором я могу записать мои err.stack, err.message, req.body, req.params и req.url во внешний файл или приложение.
Я попытался создать свой собственный обработчик ошибок и вызвать его последним в иерархии app.use (). В моих маршрутах я выбрасываю новую ошибку, и в моем собственном обработчике ошибок я пытаюсь зарегистрировать ошибку и req.body. Однако ничего не регистрируется, кроме ошибки.
app.js
app.use(responseTime());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(multilogger({extended: false, development: true, interval: 5000}));
app.use(multiError);
app.use('/', indexRouter);
случайный маршрут
router.post("/", function(req, res, next) {
return next(new Error("Oh no!"));
});
Настраиваемая ошибка
module.exports = function (err, req, res, next) {
console.error(err.message); //only this gets logged
console.error(req.body); // this doesn't appear
next(err);
};
Я хочу деструктурировать объект req моего API-вызова в моем собственном обработчике ошибок, чтобы я мог делать с ним другие вещи.
Заранее спасибо!