Comment by pavel_lishin
1 month ago
> Let's not skip over the fact that you can't have multiple middlewares or chain them either.
Surely this can't be right?
https://nextjs.org/docs/messages/nested-middleware > If you have more than one Middleware, you should combine them into a single file and model their execution depending on the incoming request.
By Talos, this can't be happening.
Am I reading this correctly? They are advocating giving up on structuring code in separate files? Is that a scoping problem that NextJS has, which makes it difficult to use multiple files? Seems like a rather ridiculous statement of a framework to make.
It's the single file that is used to define the middleware function that runs. You can import whatever you want into it and decide how "you should combine [your middleware] into a single file."
As a JavaScript developer, combining/consolidating middlewares manually just defeats the design of middleware. I would rather call it a callback function.
I prefer this to having app.use / router.use scattered anywhere throughout the app init (i.e. Express)
I can’t help but feel some of these decisions are made because it’s what is best for Vercel and not what’s best for the framework.
I don't see how this particular case makes anything better or worse for Vercel. It's just a poor developer experience to need to come up with your own composeMiddlewares function (or find one of the many that people have posted in various threads).
They validated this on the thread. They made an architectural decision to run middleware only on edge.
2 replies →