Я использую этот отличный пакет npm http-коды состояния
который помогает с кодами состояния и по моему скромному мнению обработка ошибок в Express.
Итак, мой вопрос: будет ли это отличным решением для ошибок?
Разве эти ошибки (если они случаются ... ГА!) В конечном итоге не будут обнаружены
поймать все правильно?
//my routes
router
.route('/')
.get(function(req, res, next) {
return UserModel.find({}, function(err, users) {
if (err) next(err);
res.json(users);
}).exec();
})
.post(async (req, res) => {
var newUser = new UserModel({
username: req.email,
password: req.password
});
newUser.save(function(err, user) {
res.json(user);
});
});
router.route('/:id').get(function(req, res) {
return UserModel.findById(req.params.id)
.then(user => {
if (!user) {
return res.status(404).end();
}
return res.status(200).json(user);
})
.catch(err => next(err));
});
// error handler
function errorHandler(err, req, res, next) {
// Set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// Log error
console.error(err.stack);
// Render the error page
res.status(err.status || 500);
// Default error message by HTTP code
res.render('error', {
title: HttpStatus.getStatusText(err.status),
message: HttpStatus.getStatusText(err.status)
});
}
// then pass errorHandler in this catch all
app.use(errorHandler, function(error, req, res, next) {
res.json({ message: error.message });
});