Step 36: Global Error Handler
Notice the following code snippet is repeated in every route handler!
} catch (err) {
const code = err.status || 500;
res.status(code).json({
status: code,
message: err.message || `Internal Server Error!`,
});
}
Let’s create a global error handler to avoid duplicate code!
Add the following to the end of src/index.js
right before the export statement!
// Global error handler!
app.use((err, req, res, next) => {
if (err) {
const code = err.status || 500;
res.status(code).json({
status: code,
message: err.message || `Internal Server Error!`,
});
}
next();
});
Then update every route handler in src/routes/bookmarks.js
as follows:
- change
(req, res)
to(req, res, next)
- change the body of
catch
block tonext(err);
Save the changes and rerun the test. All tests must pass!