[Discussion] Implement 'pass' function to skip to next matching (middleware) route #854
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.
New feature: a route can tell iron-router to continue to the next matching route using the
pass()
method. When this method is invoked, iron-router will immediately stop processing the current matching route and invoke the next matching route. If no subsequent matching route is found,notFound
handlers are called as normal.Example:
Requesting
/hello
will render thehello
template. Requesting anything else will result in anotFound
.pass()
works on the server as well.This was actually pretty easy once I understood the basic mechanics of the new middleware-based iron-router (nice work BTW!). But there is a lot of complexity there, so while I think this is right, please review I've done this correctly.
The idea for this feature was brought about because of a
meteor-blog
issue, where we wanted the blog to handle any incoming slug to see if it was a blog post, and then pass the request on if it wasn't.WDYT?