HISTORY
2.2.0 / 2025-03-26
Remove
setImmediatesupport checkRestore
debugdependency
2.1.0 / 2025-02-10
Updated
enginesfield to Node@18 or higherRemove
Object.setPrototypeOfpolyfillUse
Array.flatinstead ofarray-flattenpackageReplace
methodsdependency with standard librarydeps: parseurl@^1.3.3
deps: is-promise@^4.0.0
Replace
utils-mergedependency withObject.assigndeps: Remove unused dep
after
2.0.0 / 2024-09-09
Drop support for node <18
deps: path-to-regexp@^8.0.0
Drop support for partial capture group
router.route('/user(s?)/:user/:op')but still have optional non-capture/user{s}/:user/:op:name?becomes{:name}:name*becomes*name.The splat change also changes splat from strings to an array of strings
Optional splats become
{*name}:name+becomes*nameand thus equivalent to*nameso I dropped those testsStrings as regular expressions are fully removed, need to be converted to native regular expressions
2.0.0-beta.2 / 2024-03-20
This incorporates all changes after 1.3.5 up to 1.3.8.
Add support for returned, rejected Promises to
router.param
2.0.0-beta.1 / 2020-03-29
This incorporates all changes after 1.3.3 up to 1.3.5.
Internalize private
router.process_paramsmethodRemove
debugdependencydeps: array-flatten@3.0.0
deps: parseurl@~1.3.3
deps: path-to-regexp@3.2.0
Add new
?,*, and+parameter modifiers.Matching group expressions are only RegExp syntax.
(*)is no longer valid and must be written as(.*), for example.Named matching groups no longer available by position in
req.params./:foo(.*)only captures asreq.params.fooand not available asreq.params[0].Regular expressions can only be used in a matching group.
/\\d+is no longer valid and must be written as/(\\d+).Matching groups are now literal regular expressions.
:foonamed captures can no longer be included inside a capture group.Special
*path segment behavior removed./foo/*/barwill match a literal*as the middle segment.
deps: setprototypeof@1.2.0
2.0.0-alpha.1 / 2018-07-27
Add basic support for returned, rejected Promises
Rejected Promises from middleware functions
next(error)
Drop support for Node.js below 0.10
deps: debug@3.1.0
Add
DEBUG_HIDE_DATEenvironment variableChange timer to per-namespace instead of global
Change non-TTY date format
Remove
DEBUG_FDenvironment variable supportSupport 256 namespace colors
1.3.8 / 2023-02-24
Fix routing requests without method
1.3.7 / 2022-04-28
Fix hanging on large stack of sync routes
1.3.6 / 2021-11-15
Fix handling very large stacks of sync middleware
deps: safe-buffer@5.2.1
1.3.5 / 2020-03-24
Fix incorrect middleware execution with unanchored
RegExpsperf: use plain object for internal method map
1.3.4 / 2020-01-24
deps: array-flatten@3.0.0
deps: parseurl@~1.3.3
deps: setprototypeof@1.2.0
1.3.3 / 2018-07-06
Fix JSDoc for
Routerconstructor
1.3.2 / 2017-09-24
deps: debug@2.6.9
deps: parseurl@~1.3.2
perf: reduce overhead for full URLs
perf: unroll the "fast-path"
RegExp
deps: setprototypeof@1.1.0
deps: utils-merge@1.0.1
1.3.1 / 2017-05-19
deps: debug@2.6.8
Fix
DEBUG_MAX_ARRAY_LENGTHdeps: ms@2.0.0
1.3.0 / 2017-02-25
Add
next("router")to exit from routerFix case where
router.useskipped requests routes did notUse
%oin path debug to tell types apartdeps: setprototypeof@1.0.3
perf: add fast match path for
*route
1.2.0 / 2017-02-17
Skip routing when
req.urlis not setdeps: debug@2.6.1
Allow colors in workers
Deprecated
DEBUG_FDenvironment variable set to3or higherFix error when running under React Native
Use same color for same namespace
deps: ms@0.7.2
1.1.5 / 2017-01-28
deps: array-flatten@2.1.1
deps: setprototypeof@1.0.2
Fix using fallback even when native method exists
1.1.4 / 2016-01-21
deps: array-flatten@2.0.0
deps: methods@~1.1.2
perf: enable strict mode
deps: parseurl@~1.3.1
perf: enable strict mode
1.1.3 / 2015-08-02
Fix infinite loop condition using
mergeParams: trueFix inner numeric indices incorrectly altering parent
req.paramsdeps: array-flatten@1.1.1
perf: enable strict mode
deps: path-to-regexp@0.1.7
Fix regression with escaped round brackets and matching groups
1.1.2 / 2015-07-06
Fix hiding platform issues with
decodeURIComponentOnly
URIErrors are a 400
Fix using
*before params in routesFix using capture groups before params in routes
deps: path-to-regexp@0.1.6
perf: enable strict mode
perf: remove argument reassignments in routing
perf: skip attempting to decode zero length string
perf: use plain for loops
1.1.1 / 2015-05-25
Fix issue where
next('route')inrouter.paramwould incorrectly skip valuesdeps: array-flatten@1.1.0
deps: debug@~2.2.0
deps: ms@0.7.1
1.1.0 / 2015-04-22
Use
setprototypeofinstead of__proto__deps: debug@~2.1.3
Fix high intensity foreground color for bold
deps: ms@0.7.0
1.0.0 / 2015-01-13
Fix crash from error within
OPTIONSresponse handlerdeps: array-flatten@1.0.2
Remove redundant code path
1.0.0-beta.3 / 2015-01-11
Fix duplicate methods appearing in OPTIONS responses
Fix OPTIONS responses to include the HEAD method properly
Remove support for leading colon in
router.param(name, fn)Use
array-flattenfor flattening arraysdeps: debug@~2.1.1
deps: methods@~1.1.1
1.0.0-beta.2 / 2014-11-19
Match routes iteratively to prevent stack overflows
1.0.0-beta.1 / 2014-11-16
Initial release ported from Express 4.x
Altered to work without Express
Last updated