-
Notifications
You must be signed in to change notification settings - Fork 159
Move error handling to middleware #143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Remove unused import Remove unused log
62b13aa
to
ec44d28
Compare
joepetrowski
approved these changes
Jul 3, 2020
…sidecar into zeke-ware-err-sanitize
danforbes
reviewed
Jul 6, 2020
danforbes
approved these changes
Jul 6, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EDIT: Removed the sanitize numbers middleware. No monkey patching express functions for now.
Closes #138
This PR is a combination of two related features that both affect the implementation of
get
andpost
. This is in preparation for merging #134 as that PR does not use a generic wrapper around express app.get and app.post.'Motivation
Middleware functions are modular, can be put on routes/routers with fine grain control, and are individually tested-able.
With our current setup of error handling we must have duplicate code across get and post.
The handling of different errors is intertwined and number sanitization is all done in one function, making good unit testing difficult.
When adding new types of error formats or phasing out old error formats there is a high cognitive over head with the current setup. Using middleware specific to an error formats will allow us to easily add or remove error formats from our codebase
For number sanitization, having the functionality at the middleware level allows us to move it from the application level to the router level if we choose. The current layout I propose is at the application level as that mimics our current API
What to look for while reviewing
get
andpost
to catch them.res.send
is reasonable. Implementing this was tricking becauseres
to the originalsend
andany
defaults and sanitizeNumbers is allany
s