Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Remove the `extended` option and stop being opinionated about parsers

Open
#511 7 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Quiet
Tech stack
express, node.js
Domain
api, backend

Research direction

Start by reading Express's customizable query-parser behavior and the body-parser extended option, then review the linked body-parser and Express issues, discussions, and pull requests. The issue is marked for future team discussion, so completion depends on an agreed Express 6 plan for removing or replacing the option and updating the affected packages.

Written by the indexing model from the issue text.

Description

discuss tc agenda

I'm opening this here because it affects multiple packages, including mainly body-parser and Express, and I'd like to consolidate the discussion around qs instead of continuing it across multiple issues, discussions, and PRs.

Currently, the extended option brings in qs. That's not really a major problem, since we could simply make it an optional peer dependency and let users install it if they need it while continuing to provide the option.

The more important point is that, recently, we've been moving away from being opinionated about these kinds of things. For example, we've made the query parser customizable, and we're also working toward non-blocking JSON parsing by allowing custom parsers in body-parser (https://github.com/expressjs/body-parser/pull/696). Similarly, raw-body no longer depends on iconv-lite; it now uses TextDecoder by default while still allowing users to provide their own decoder if needed https://github.com/stream-utils/raw-body/pull/145.

Express already allows customizing the URL query parser, so for Express 6 I think we should remove the extended option entirely. That way, Express no longer has an opinion about which parser should be used. If the platform default isn't what you want, you can simply plug in your own parser, just as you already can today.

I'm marking this for discussion in a future meeting so we can get feedback from the rest of the team, especially the captains, and use it to help plan Express 6.

For ref: https://sourcegraph.com/search?q=context:global+count:1100000+%22set%28%27query+parser%27%2C+%27extended%27%22+-file:node_modules&patternType=keyword&sm=0

This isn't about the dependency tree or any of that. It's about reducing the maintenance burden and staying true to our philosophy of being unopinionated: use what the platform provides. 🙂

Dominant language
No language data
Stars
73
Forks
26
Avg merge
5d 4h
Merged PRs (30d)
1

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from expressjs/discussions

All issues in expressjs/discussions

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.