3.21.0

expressjs/express3.21.0Jun 19, 2015by dougwilson

AI Summary

Express 3.21.0 is primarily a dependency update release, upgrading various middleware packages to their latest versions including connect@2.30.0, etag@~1.7.0, send@0.13.0, and fresh@0.3.0. The release focuses on performance improvements across dependencies and includes some behavioral changes to ETag generation.

Key Highlights

  • Updated connect middleware framework to v2.30.0 with updated dependencies
  • Major etag@~1.7.0 update with performance improvements including MD5-only ETags and removal of base64 padding
  • Added weak ETag matching support in fresh@0.3.0
  • send@0.13.0 improvements including Date header support and http-errors integration
  • Multiple performance optimizations including strict mode enablement and reduced allocations

Breaking Changes

  • ETag generation now uses MD5 instead of CRC32 for non-Stats ETags
  • ETags no longer include base64 padding, shortening their length
  • Weak ETags over 1KB now use MD5 instead of MD4

New Features

  • Weak ETag matching support added
  • Node.js HTTP servers can now set Date response header
  • Standard errors now use http-errors package
  • Status messages now use statuses package instead of http module

Full Release Notes

- deps: basic-auth@1.0.2
  - perf: enable strict mode
  - perf: hoist regular expression
  - perf: parse with regular expressions
  - perf: remove argument reassignment
- deps: connect@2.30.0
  - deps: body-parser@~1.13.1
  - deps: bytes@2.1.0
  - deps: compression@~1.5.0
  - deps: cookie@0.1.3
  - deps: cookie-parser@~1.3.5
  - deps: csurf@~1.8.3
  - deps: errorhandler@~1.4.0
  - deps: express-session@~1.11.3
  - deps: finalhandler@0.4.0
  - deps: fresh@0.3.0
  - deps: morgan@~1.6.0
  - deps: serve-favicon@~2.3.0
  - deps: serve-index@~1.7.0
  - deps: serve-static@~1.10.0
  - deps: type-is@~1.6.3
- deps: cookie@0.1.3
  - perf: deduce the scope of try-catch deopt
  - perf: remove argument reassignments
- deps: escape-html@1.0.2
- deps: etag@~1.7.0
  - Always include entity length in ETags for hash length extensions
  - Generate non-Stats ETags using MD5 only (no longer CRC32)
  - Improve stat performance by removing hashing
  - Improve support for JXcore
  - Remove base64 padding in ETags to shorten
  - Support "fake" stats objects in environments without fs
  - Use MD5 instead of MD4 in weak ETags over 1KB
- deps: fresh@0.3.0
  - Add weak `ETag` matching support
- deps: mkdirp@0.5.1
  - Work in global strict mode
- deps: send@0.13.0
  - Allow Node.js HTTP server to set `Date` response header
  - Fix incorrectly removing `Content-Location` on 304 response
  - Improve the default redirect response headers
  - Send appropriate headers on default error response
  - Use `http-errors` for standard emitted errors
  - Use `statuses` instead of `http` module for status messages
  - deps: escape-html@1.0.2
  - deps: etag@~1.7.0
  - deps: fresh@0.3.0
  - deps: on-finished@~2.3.0
  - perf: enable strict mode
  - perf: remove unnecessary array allocations