Wednesday 24 July 2019

How to use Express Router.route.all()

Hi, I'm trying to figure out how to use the .all() method of router.route() to remove some duplication in my code, but it doesn't seem to be working. I have my routes set up in the following way:router .route('/:slug') .get(hasToken, hasPermission('manage:event'), isEventOrganiser, getEventAsOrganiser) .patch(hasToken, hasPermission('manage:event'), isEventOrganiser, updateEvent) .delete(hasToken, hasPermission('manage:event'), isEventOwner, deleteEvent);Since all of the routes share the two first middlewares, what I've tried to do is to use .all() to first process the common middleware and then handle the middleware for the specific route being called, like so:router .route('/:slug') .all(hasToken, hasPermission('manage:event')) .get(isEventOrganiser, getEventAsOrganiser) .patch(isEventOrganiser, updateEvent) .delete(isEventOwner, deleteEvent);However, this results in my routes returning a 404. If I add some logging to e.g. the get() call, it never gets logged. Have I misunderstood how .all() works or am I doing something else wrong here?

Submitted July 24, 2019 at 11:33AM by sourtargets

No comments:

Post a Comment