2025-01-28 · Express.js
Handle errors consistently across an Express app
One error class, one handler, one response shape, plus async wrappers that stop unhandled rejections.
Introduction
Builds a minimal error-handling layer that covers validation, 404s, and unexpected throws without try/catch in every handler.
The mental model
- Start from the smallest version that could work, and make it observable.
- Write down the trade-off you are accepting, not only the feature you are shipping.
- Revisit the decision when the team grows; most choices in Express.js have a shelf life.
A practical starting point
- Reproduce the situation on a scratch branch, next to a measurement you trust.
- Change one variable at a time, and keep the diff small enough to explain in one sentence.
- Keep the result, throw away the scaffolding.
git switch -c experiment/one-thingClosing thoughts
None of this is doctrine. Treat it as a checklist you are allowed to disagree with — ideally with an experiment of your own that settles the argument.