setImmediate
support checkdebug
dependencyengines
field to Node@18 or higherObject.setPrototypeOf
polyfillArray.flat
instead of array-flatten
packagemethods
dependency with standard libraryutils-merge
dependency with Object.assign
after
router.route('/user(s?)/:user/:op')
but still have optional non-capture /user{s}/:user/:op
:name?
becomes {:name}
:name*
becomes *name
.{*name}
:name+
becomes *name
and thus equivalent to *name
so I dropped those testsThis incorporates all changes after 1.3.5 up to 1.3.8.
router.param
This incorporates all changes after 1.3.3 up to 1.3.5.
router.process_params
methoddebug
dependency?
, *
, and +
parameter modifiers.(*)
is no longer valid and must be written as (.*)
, for example.req.params
.
/:foo(.*)
only captures as req.params.foo
and not available as
req.params[0]
./\\d+
is no longer valid and must be written as /(\\d+)
.:foo
named captures can no longer be included inside a capture group.*
path segment behavior removed.
/foo/*/bar
will match a literal *
as the middle segment.next(error)
DEBUG_HIDE_DATE
environment variableDEBUG_FD
environment variable supportRegExp
sRouter
constructorRegExp
DEBUG_MAX_ARRAY_LENGTH
next("router")
to exit from routerrouter.use
skipped requests routes did not%o
in path debug to tell types apart*
routereq.url
is not setDEBUG_FD
environment variable set to 3
or highermergeParams: true
req.params
decodeURIComponent
URIError
s are a 400*
before params in routesnext('route')
in router.param
would incorrectly skip valuessetprototypeof
instead of __proto__
OPTIONS
response handlerrouter.param(name, fn)
array-flatten
for flattening arrays