-
-
Notifications
You must be signed in to change notification settings - Fork 743
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
build-your-own-parser #22
Comments
I think this lib is pretty easy to understand. IMO they should just fork this lib if they wanna do more stuff. Most of the logic should be in separate libs anyways |
I think it would be better to have the interface and people have parsing libs than lots of body-parser forks. |
This module should be the interface. |
You guys are just adding more responsibility to your plate hah |
Yeah, that's the issue, may be too much to be worthwhile to support. |
i.am.machine :DDD |
I can tackle this if it's helpful |
This is actually nearly done, as it was intended for the goal of bringing body-parser back into express core. Out of curiosity, what parser were you planning to build that we don't have already :)? |
good question |
xml |
lol |
lol. Somehow I knew that was the answer ;) Currently the best you can do is to use |
The reason why I had a feeling is because I use this module to parse XML all the time, but of course using text + parser requires the request body to buffer up instead of feeding it to an incremental parser (CSV is another common one, which I also use!). This new stuff will actually be out sooner rather than later since I should not be distracted with express core. |
JSON5? I use that in a few APIs, because it's easier to debug such api with a curl (and b/w compatibility with json is perfect). Even created express-json5 based on bodyParser. So this use-case is more real than it seems. |
Though it looks like as body-parser is currently, it can be significantly simplified by wrapping |
@rlidwka or, looking at your code now, you could technically wrap |
How do you build may I ask? |
Reviving this issue as a more central place to discuss all the Generic parser work.tldr;Im in favor of creating a generic parser middleware interface folks can extend to create custom middlewares for their advanced usecases. However, Im against exposing an The Current PRsWe have several PRs open right now to land a Generic implementation. I don't want to leave feedback on all of these, or the additional closed ones, so Im writing this comment instead. cc @wesleytodd @UlisesGascon @ctcpip @Phillip9587
The existing approach here exposes an Flexibility vs SimplicityI'm open to offering a Generic interface for custom parsers, but I don’t believe we should expose an The goal of body-parser (IMO) is to provide simple, reliable parsers for common HTTP body formats like JSON and urlencoded data, covering common usecases therein. By sticking to common use cases and avoiding overcomplication, the core middleware is easier for users to adopt and maintain long term. Extending a generic interface to create a more custom parser is a viable way to provide users flexibility while keeping the simplicity of the core middlewares. Customization needs are rare compared to the more common issues reported, which suggests that the current parsers cover most users' needs. We’ve seen a small but recurring set of issues where users want to extend or change the behavior of existing parsers. Examples include:
Most of these requests represent edge cases or specialized needs, which is why I think a Generic parser interface is the best way to address them without overcomplicating the core parsers. |
I agree with @jonchurch that we should focus on maintaining and improving our core parsers while allowing users to create their own custom parsers as needed. Keeping the core parsers simple and reliable should remain our priority. Additionally, I think we should start over rather than trying to rebase the existing PRs. A fresh approach would give us a cleaner foundation to work from and ensure we implement this in the best possible way. That said, there is #551, which introduces the Looking forward to hearing everyone's thoughts! |
If you look at the middleware, after I had refactored it, all they are is a call to
typeis
and a call toread
. We should add something likebodyParser.generic()
to let people roll their owner simple body parsers.The text was updated successfully, but these errors were encountered: