Делаю api на node\express, так как пришел с пхп появился вопрос, как правильно в приложении отлавливать и логировать ошибки в зависимости от того что это prod\dev.
В пхп фреймворках окружение легко переключается и в одном случае только код ошибки (и запись в лог) в другом весь стектрейс, ну и это централизовано сделано.
Тут что то не нашел такого, пытаюсь сделать что то типа такого middleware, но пока без успешно, подскажите как это правильно делается и нужно ли это.
// error handler
app.use((err, req, res, next) => {
const error = config.isDev ? err : {};
res.status(err.status || 500);
res.json(error);
});
UPD
Сейчас дошел до такого способа не знаю на сколько это best practices
import User from "../models/User";
class UserController {
index(req, res, next) {
User.find(-1) //генерим ошибку
.then(users => res.json(users))
.catch(error => next({ status: 400, error }));
}
}
Код попадает в этот middleware
// error handler
app.use((err, req, res, next) => {
const error = config.isDev ? err : {};
res.status(err.status || 500);
res.json(error);
});