Release changelog
All the latest updates, improvements, and fixes to Express
Express v5
5.1.0 - 릴리즈 날짜: 2025-03-31
5.1.0 마이너 릴리즈에는 다음과 같은 새로운 기능과 개선 사항이 포함되어 있습니다:
- 응답을 
Uint8Array형식으로 전송하는 기능 지원 res.sendFile()에서 ETag 옵션 지원 추가res.links()에서 동일한rel값을 갖는 여러 링크 추가 지원- 성능 향상: 
acceptParams에 루프 사용 - [email protected]
      
- Brotli 및 
AsyncLocalStorage에 대한 레거시 Node.js 지원 검사 제거 - Remove 
unpipe&destroy 
 - Brotli 및 
 - [email protected]
      
- Restore 
debug. Now with therouterscope instead ofexpress. - Remove legacy node.js support checks for 
setImmediate - Deprecate non-native promise support
 - Remove 
after,safe-buffer,array-flatten,setprotoypeof,methods,utils-merge 
 - Restore 
 - [email protected]
      
- Remove legacy node.js support checks for 
headersSent,setImmediate, & http2 support - Remove 
unpipe 
 - Remove legacy node.js support checks for 
 - Transitioned all remaining dependencies to use 
^ranges instead of locked versions - Add package.json funding field to highlight our OpenCollective
 - See Changelog v5.1.0
 
5.0.1 - 릴리즈 날짜: 2024-10-08
The 5.0.1 patch release includes one security fix:
- Update jshttps/cookie to address a vulnerability.
 
5.0.0 - 릴리즈 날짜: 2024-09-09
Check the migration guide with all the changes in this new version of Express.
Express v4
4.21.2 - 릴리즈 날짜: 2024-11-06
The 4.21.2 patch release includes one security fix:
- Update pillajs/path-to-regexp to address a vulnerability.
 
4.21.1 - 릴리즈 날짜: 2024-10-08
The 4.21.1 patch release includes one security fix:
- Update jshttps/cookie to address a vulnerability.
 
4.21.0 - 릴리즈 날짜: 2024-09-11
The 4.21.0 minor release includes one new feature:
- Deprecate 
res.location("back")andres.redirect("back")magic string 
4.20.0 - Release date: 2024-09-10
The 4.20.0 minor release includes bug fixes and some new features, including:
- The 
res.clearCookie()method deprecatesoptions.maxAgeandoptions.expiresoptions. - The 
res.redirect()method removes HTML link rendering. - The 
express.urlencoded()method method now has a depth level of32, whereas it was previouslyInfinity. - Adds support for named matching groups in the routes using a regex
 - Removes encoding of 
\,|, and^to align better with URL spec 
For a complete list of changes in this release, see History.md
4.19.2 - Release date: 2024-03-25
- Improved fix for open redirect allow list bypass
 
For a complete list of changes in this release, see History.md
4.19.1 - Release date: 2024-03-20
- Allow passing non-strings to res.location with new encoding handling checks
 
For a complete list of changes in this release, see History.md
4.19.0 - Release date: 2024-03-20
- Prevent open redirect allow list bypass due to encodeurl
 - deps: [email protected]
 
For a complete list of changes in this release, see History.md
4.18.3 - Release date: 2024-02-29
The 4.18.3 patch release includes the following bug fix:
- 
      
Fix routing requests without method. (commit)
 
For a complete list of changes in this release, see History.md
4.18.2 - Release date: 2022-10-08
The 4.18.2 patch release includes the following bug fix:
- 
      
Fix regression routing a large stack in a single route. (commit)
 
For a complete list of changes in this release, see History.md
4.18.1 - Release date: 2022-04-29
The 4.18.1 patch release includes the following bug fix:
- 
      
Fix the condition where if an Express application is created with a very large stack of routes, and all of those routes are sync (call
next()synchronously), then the request processing may hang. 
For a complete list of changes in this release, see History.md.
4.18.0 - Release date: 2022-04-25
The 4.18.0 minor release includes bug fixes and some new features, including:
- 
      
The
app.get()method and theapp.set()method now ignores properties directly onObject.prototypewhen getting a setting value. - 
      
The
res.cookie()method now accepts a “priority” option to set the Priority attribute on the Set-Cookie response header. - 
      
The
res.cookie()method now rejects an Invalid Date object provided as the “expires” option. - 
      
The
res.cookie()method now works whennullorundefinedis explicitly provided as the “maxAge” argument. - 
      
Starting with this version, Express supports Node.js 18.x.
 - 
      
The
res.download()method now accepts a “root” option to matchres.sendFile(). - 
      
The
res.download()method can be supplied with anoptionsobject without providing afilenameargument, simplifying calls when the defaultfilenameis desired. - 
      
The
res.format()method now invokes the provided “default” handler with the same arguments as the type handlers (req,res, andnext). - 
      
The
res.send()method will not attempt to send a response body when the response code is set to 205. - 
      
The default error handler will now remove certain response headers that will break the error response rendering, if they were set previously.
 - 
      
The status code 425 is now represented as the standard “Too Early” instead of “Unordered Collection”.
 
For a complete list of changes in this release, see History.md.
4.17.3 - Release date: 2022-02-16
The 4.17.3 patch release includes one bug fix:
- 
      
Update to qs module for a fix around parsing
__proto__properties. 
For a complete list of changes in this release, see History.md.
4.17.2 - Release date: 2021-12-16
The 4.17.2 patch release includes the following bug fixes:
- 
      
Fix handling of
undefinedinres.jsonpwhen a callback is provided. - 
      
Fix handling of
undefinedinres.jsonandres.jsonpwhen"json escape"is enabled. - 
      
Fix handling of invalid values to the
maxAgeoption ofres.cookie(). - 
      
Update to jshttp/proxy-addr module to use
req.socketover deprecatedreq.connection. - 
      
Starting with this version, Express supports Node.js 14.x.
 
For a complete list of changes in this release, see History.md.
4.17.1 - Release date: 2019-05-25
The 4.17.1 patch release includes one bug fix:
- 
      
The change to the
res.status()API has been reverted due to causing regressions in existing Express 4 applications. 
For a complete list of changes in this release, see History.md.
4.17.0 - Release date: 2019-05-16
The 4.17.0 minor release includes bug fixes and some new features, including:
- 
      
The
express.raw()andexpress.text()middleware have been added to provide request body parsing for more raw request payloads. This uses the expressjs/body-parser module module underneath, so apps that are currently requiring the module separately can switch to the built-in parsers. - 
      
The
res.cookie()API now supports the"none"value for thesameSiteoption. - 
      
When the
"trust proxy"setting is enabled, thereq.hostnamenow supports multipleX-Forwarded-Forheaders in a request. - 
      
Starting with this version, Express supports Node.js 10.x and 12.x.
 - 
      
The
res.sendFile()API now provides and more immediate and easier to understand error when a non-string is passed as thepathargument. - 
      
The
res.status()API now provides and more immediate and easier to understand error whennullorundefinedis passed as the argument. 
For a complete list of changes in this release, see History.md.
4.16.4 - Release date: 2018-10-10
The 4.16.4 patch release includes various bug fixes:
- 
      
Fix issue where
"Request aborted"may be logged inres.sendfile. 
For a complete list of changes in this release, see History.md.
4.16.3 - Release date: 2018-03-12
The 4.16.3 patch release includes various bug fixes:
- 
      
Fix issue where a plain
%at the end of the url in theres.locationmethod or theres.redirectmethod would not get encoded as%25. - 
      
Fix issue where a blank
req.urlvalue can result in a thrown error within the default 404 handling. - 
      
Fix the generated HTML document for
express.staticredirect responses to properly include</html>. 
For a complete list of changes in this release, see History.md.
4.16.2 - Release date: 2017-10-09
The 4.16.2 patch release includes a regression bug fix:
- 
      
Fix a
TypeErrorthat can occur in theres.sendmethod when aBufferis passed tores.sendand theETagheader is already set on the response. 
For a complete list of changes in this release, see History.md.
4.16.1 - Release date: 2017-09-29
The 4.16.1 patch release includes a regression bug fix:
- 
      
Update to pillarjs/send module to fix an edge case scenario regression that affected certain users of
express.static. 
For a complete list of changes in this release, see History.md.
4.16.0 - Release date: 2017-09-28
The 4.16.0 minor release includes security updates, bug fixes, performance enhancements, and some new features, including:
- 
      
Update to jshttp/forwarded module to address a vulnerability.
req.host,req.hostname,req.ip,req.ips,req.protocol을 사용하는 애플리케이션에 영향을 끼칠 수 있습니다. - 
      
Update a dependency of the pillarjs/send module to address a vulnerability in the
mimedependency. This may affect your application if untrusted string input is passed to the following APIs:res.type(). - 
      
The pillarjs/send module has implemented a protection against the Node.js 8.5.0 vulnerability. Using any prior version of Express with Node.js 8.5.0 (that specific Node.js version) will make the following APIs vulnerable:
express.static,res.sendfile, andres.sendFile. - 
      
Starting with this version, Express supports Node.js 8.x.
 - 
      
The new setting
"json escape"can be enabled to escape characters inres.json(),res.jsonp()andres.send()responses that can trigger clients to sniff the response as HTML instead of honoring theContent-Type. This can help protect an Express app from a class of persistent XSS-based attacks. - 
      
The
res.download()method now accepts an optionaloptionsobject. - 
      
The
express.json()andexpress.urlencoded()middleware have been added to provide request body parsing support out-of-the-box. This uses the expressjs/body-parser module module underneath, so apps that are currently requiring the module separately can switch to the built-in parsers. - 
      
The
express.static()middleware andres.sendFile()method now support setting theimmutabledirective on theCache-Controlheader. Setting this header with an appropriatemaxAgewill prevent supporting web browsers from sending any request to the server when the file is still in their cache. - 
      
The pillarjs/send module has an updated list of MIME types to better set the
Content-Typeof more files. There are 70 new types for file extensions. 
For a complete list of changes in this release, see History.md.
4.15.5 - Release date: 2017-09-24
The 4.15.5 patch release includes security updates, some minor performance enhancements, and a bug fix:
- 
      
Update to debug module to address a vulnerability, but this issue does not impact Express.
 - 
      
Update to jshttp/fresh module to address a vulnerability.
express.static,req.fresh,res.json,res.jsonp,res.send,res.sendfileres.sendFile,res.sendStatus를 사용하고 있는 애플리케이션에 영향을 끼칩니다. - 
      
Update to jshttp/fresh module fixes handling of modified headers with invalid dates and makes parsing conditional headers (like
If-None-Match) faster. 
For a complete list of changes in this release, see History.md.
4.15.4 - Release date: 2017-08-06
The 4.15.4 patch release includes some minor bug fixes:
- 
      
Fix array being set for
"trust proxy"value being manipulated in certain conditions. 
For a complete list of changes in this release, see History.md.
4.15.3 - Release date: 2017-05-16
The 4.15.3 patch release includes a security update and some minor bug fixes:
- 
      
Update a dependency of the pillarjs/send module to address a vulnerability. 애플리케이션이
express.static,res.sendfile,res.sendFile의maxAge옵션에 Untrusted 문자열을 입력받고 있으면 영향을 끼칠 수 있습니다. - 
      
Fix error when
res.setcannot add charset toContent-Type. - 
      
Fix missing
</html>in HTML document. 
For a complete list of changes in this release, see History.md.
4.15.2 - Release date: 2017-03-06
The 4.15.2 patch release includes a minor bug fix:
- 
      
Fix regression parsing keys starting with
[in the extended (default) query parser. 
For a complete list of changes in this release, see History.md.
4.15.1 - Release date: 2017-03-05
The 4.15.1 patch release includes a minor bug fix:
- 
      
Fix compatibility issue when using the datejs 1.x library where the
express.static()middleware andres.sendFile()method would incorrectly respond with 412 Precondition Failed. 
For a complete list of changes in this release, see History.md.
4.15.0 - Release date: 2017-03-01
The 4.15.0 minor release includes bug fixes, performance improvements, and other minor feature additions, including:
- 
      
Starting with this version, Express supports Node.js 7.x.
 - 
      
The
express.static()middleware andres.sendFile()method now support theIf-MatchandIf-Unmodified-Sincerequest headers. - 
      
Update to jshttp/etag module to generate the default ETags for responses which work when Node.js has FIPS-compliant crypto enabled.
 - 
      
Various auto-generated HTML responses like the default not found and error handlers will respond with complete HTML 5 documents and additional security headers.
 
For a complete list of changes in this release, see History.md.
4.14.1 - Release date: 2017-01-28
The 4.14.1 patch release includes bug fixes and performance improvements, including:
- 
      
Update to pillarjs/finalhandler module fixes an exception when Express handles an
Errorobject which has aheadersproperty that is not an object. 
For a complete list of changes in this release, see History.md.
4.14.0 - Release date: 2016-06-16
The 4.14.0 minor release includes bug fixes, security update, performance improvements, and other minor feature additions, including:
- 
      
Starting with this version, Express supports Node.js 6.x.
 - 
      
Update to jshttp/negotiator module fixes a regular expression denial of service vulnerability.
 - 
      
The
res.sendFile()method now accepts two new options:acceptRangesandcacheControl.- 
          
acceptRanges(defaut istrue), enables or disables accepting ranged requests. When disabled, the response does not send theAccept-Rangesheader and ignores the contents of theRangerequest header. - 
          
cacheControl, (default istrue), enables or disables theCache-Controlresponse header. Disabling it will ignore themaxAgeoption. - 
          
res.sendFilehas also been updated to handleRangeheader and redirections better.</li>
 - 
            
The
res.location()method andres.redirect()method will now URL-encode the URL string, if it is not already encoded. - 
            
The performance of the
res.json()method andres.jsonp()method have been improved in the common cases. - 
            
The jshttp/cookie module (in addition to a number of other improvements) has been updated and now the
res.cookie()method supports thesameSiteoption to let you specify the SameSite cookie attribute. 
 - 
          
 
참고
This attribute has not yet been fully standardized, may change in the future, and many clients may ignore it.
The possible value for the sameSite option are:
true, which sets theSameSiteattribute toStrictfor strict same site enforcement.false, which does not set theSameSiteattribute.'lax', which sets theSameSiteattribute toLaxfor lax same site enforcement.- 
          
'strict', which sets theSameSiteattribute toStrictfor strict same site enforcement.</li>
 - 
            
Absolute path checking on Windows, which was incorrect for some cases, has been fixed.
 - 
            
IP address resolution with proxies has been greatly improved.
 - 
            
The
req.range()method options object now supports acombineoption (falseby default), which whentrue, combines overlapping and adjacent ranges and returns them as if they were specified that way in the header. 
</ul>
For a complete list of changes in this release, see History.md.
</div>