v5.1.0

expressjs/expressv5.1.0Mar 31, 2025by wesleytodd

AI Summary

Feature-rich release for Express v5 with major dependency upgrades, new response features, and significant code cleanup.

Key Highlights

  • Upgraded body-parser to v2.x
  • Upgraded router to v2.x
  • Upgraded finalhandler to v2.x
  • Added support for ETag option in res.sendFile
  • Extended res.links() to allow adding multiple links with the same rel
  • Removed multiple unused dependencies (utils-merge, depd, methods)
  • Added Node.js 23.0 support
  • Added dependabot for automated dependency updates

New Features

  • ETag support in res.sendFile
  • Multiple links with same rel in res.links()
  • Modernized codebase with native Node.js modules
  • Automated dependency management

Full Release Notes

## What's Changed
* Update captains by @UlisesGascon in https://github.com/expressjs/express/pull/6027
* build: Node.js 23.0 by @bjohansebas in https://github.com/expressjs/express/pull/6075
* Add funding field (v5) by @bjohansebas in https://github.com/expressjs/express/pull/6064
* ✅ add discarded middleware test by @ctcpip in https://github.com/expressjs/express/pull/5819
* update homepage link http to https by @bjohansebas in https://github.com/expressjs/express/pull/5920
* Improve readme by @bjohansebas in https://github.com/expressjs/express/pull/5994
* Add bjohansebas as repo captain for expressjs.com by @crandmck in https://github.com/expressjs/express/pull/6058
* Remove Object.setPrototypeOf polyfill by @Phillip9587 in https://github.com/expressjs/express/pull/6081
* fix(buffer): use node:buffer instead of safe-buffer by @bhavya3024 in https://github.com/expressjs/express/pull/6071
* docs: Add DCO by @UlisesGascon in https://github.com/expressjs/express/pull/6048
* cleanup: remove promise support check from tests by @Phillip9587 in https://github.com/expressjs/express/pull/6148
* Use loop for acceptParams by @blakeembrey in https://github.com/expressjs/express/pull/6066
* Improve documentation step in release process by @bjohansebas in https://github.com/expressjs/express/pull/6150
* cleanup: remove unnecessary require for global Buffer by @Phillip9587 in https://github.com/expressjs/express/pull/6146
* cleanup: remove AsyncLocalStorage check by @Phillip9587 in https://github.com/expressjs/express/pull/6147
* update history.md for acceptParams change by @jonchurch in https://github.com/expressjs/express/pull/6177
* docs: add @rxmarbles to the triage team by @UlisesGascon in https://github.com/expressjs/express/pull/6151
* refactor: improve readability by @sazk07 in https://github.com/expressjs/express/pull/6173
* docs: clarify the security process in the triage role by @bjohansebas in https://github.com/expressjs/express/pull/6217
* chore: replace `methods` dependency with standard library by @jonkoops in https://github.com/expressjs/express/pull/6196
* Remove `utils-merge` dependency - use spread syntax instead by @Phillip9587 in https://github.com/expressjs/express/pull/6091
* fix(securite): fix vulnerabilities by @Abdel-Monaam-Aouini in https://github.com/expressjs/express/pull/6211
* refactor: prefix built-in node module imports by @slagiewka in https://github.com/expressjs/express/pull/6236
* fix: remove download size badges by @wesleytodd in https://github.com/expressjs/express/pull/6266
* Remove unused `depd` dependency by @jonkoops in https://github.com/expressjs/express/pull/6197
* fix: usage of `Invalid action input 'persist-credentials'` for `actions/setup-node@v4` in `ci.yml` by @hamirmahal in https://github.com/expressjs/express/pull/6256
* Add support for OSSF scorecard reporting by @UlisesGascon in https://github.com/expressjs/express/pull/5431
* docs: add @Phillip9587 to the triage team by @bjohansebas in https://github.com/expressjs/express/pull/6276
* fix: added a missing semicolon in css styles in examples/auth by @pr4j3sh in https://github.com/expressjs/express/pull/6297
* docs: include team email in the security policy by @UlisesGascon in https://github.com/expressjs/express/pull/6278
* refactor: simplify `normalizeTypes` function by @Ayoub-Mabrouk in https://github.com/expressjs/express/pull/6097
* ci: updated github actions ci workflow by @Phillip9587 in https://github.com/expressjs/express/pull/6314
* ci: fix npm install --include typo by @Phillip9587 in https://github.com/expressjs/express/pull/6324
* ci: updated scorecard actions by @Phillip9587 in https://github.com/expressjs/express/pull/6322
* build(deps): use carat notation for dependency versions by @dpopp07 in https://github.com/expressjs/express/pull/6317
* chore(deps): update `debug` to ^4.4.0 by @Phillip9587 in https://github.com/expressjs/express/pull/6313
* docs: retroactively note 5.0.0-beta.1 api change in history file by @dpopp07 in https://github.com/expressjs/express/pull/6333
* feat(deps): body-parser@^2.1.0 by @wesleytodd in https://github.com/expressjs/express/pull/6332
* feat(deps): router@^2.1.0 by @wesleytodd in https://github.com/expressjs/express/pull/6331
* Update repo captains by @UlisesGascon in https://github.com/expressjs/express/pull/6234
* deps: upgrade nyc by @agungjati in https://github.com/expressjs/express/pull/6122
* fix (deps): update deps by @wesleytodd in https://github.com/expressjs/express/pull/6337
* response: add support for ETag option in res.sendFile by @juanarbol in https://github.com/expressjs/express/pull/6073
* Update multiple links to use `https` instead of `http` by @Phillip9587 in https://github.com/expressjs/express/pull/6338
* Extend res.links() to allow adding multiple links with the same rel #2729 by @andvea in https://github.com/expressjs/express/pull/4885
* docs: update emeritus triagers by @UlisesGascon in https://github.com/expressjs/express/pull/6345
* docs: update guidance for triager nominations by @bjohansebas in https://github.com/expressjs/express/pull/6349
* docs: clarify guidelines for becoming a committer by @bjohansebas in https://github.com/expressjs/express/pull/6364
* Nominate @dpopp07 to the triage team by @UlisesGascon in https://github.com/expressjs/express/pull/6352
* fix(deps): qs@^6.14.0 by @wesleytodd in https://github.com/expressjs/express/pull/6374
* Add dependabot by @UlisesGascon in https://github.com/expressjs/express/pull/5435
* fix dependabot config by @bjohansebas in https://github.com/expressjs/express/pull/6392
* build(deps): bump github/codeql-action from 3.24.7 to 3.28.11 by @dependabot in https://github.com/expressjs/express/pull/6398
* build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.1 by @dependabot in https://github.com/expressjs/express/pull/6397
* feat(deps): finalhandler@2.1.0 by @wesleytodd in https://github.com/expressjs/express/pull/6373
* build(deps-dev): bump cookie-session from 2.0.0 to 2.1.0 by @dependabot in https://github.com/expressjs/express/pull/6399
* deps: body-parser@^2.2.0 by @UlisesGascon in https://github.com/expressjs/express/pull/6419
* deps: type-is@^2.0.1 by @UlisesGascon in https://github.com/expressjs/express/pull/6420
* deps: router@^2.2.0 by @UlisesGascon in https://github.com/expressjs/express/pull/6417
* ci: use full SHAs for github action versions by @Phillip9587 in https://github.com/expressjs/express/pull/6415
* doc: remove @mertcanaltin from Triagers by @mertcanaltin in https://github.com/expressjs/express/pull/6408
* deps: serve-static@^2.2.0 by @UlisesGascon in https://github.com/expressjs/express/pull/6418
* 5.1.0 by @wesleytodd in https://github.com/expressjs/express/pull/6425

## New Contributors
* @bhavya3024 made their first contribution in https://github.com/expressjs/express/pull/6071
* @jonkoops made their first contribution in https://github.com/expressjs/express/pull/6196
* @Abdel-Monaam-Aouini made their first contribution in https://github.com/expressjs/express/pull/6211
* @slagiewka made their first contribution in https://github.com/expressjs/express/pull/6236
* @hamirmahal made their first contribution in https://github.com/expressjs/express/pull/6256
* @pr4j3sh made their first contribution in https://github.com/expressjs/express/pull/6297
* @Ayoub-Mabrouk made their first contribution in https://github.com/expressjs/express/pull/6097
* @dpopp07 made their first contribution in https://github.com/expressjs/express/pull/6317
* @agungjati made their first contribution in https://github.com/expressjs/express/pull/6122
* @andvea made their first contribution in https://github.com/expressjs/express/pull/4885
* @dependabot made their first contribution in https://github.com/expressjs/express/pull/6398

**Full Changelog**: https://github.com/expressjs/express/compare/5.0.1...v5.1.0