110 KiB
4.18.2 / 2022-10-08
- Fix regression routing a large stack in a single route
- deps: body-parser@1.20.1
- deps: qs@6.11.0
- perf: remove unnecessary object clone
- deps: qs@6.11.0
4.18.1 / 2022-04-29
- Fix hanging on large stack of sync routes
4.18.0 / 2022-04-25
- Add "root" option to
res.download - Allow
optionswithoutfilenameinres.download - Deprecate string and non-integer arguments to
res.status - Fix behavior of
null/undefinedasmaxAgeinres.cookie - Fix handling very large stacks of sync middleware
- Ignore
Object.prototypevalues in settings throughapp.set/app.get - Invoke
defaultwith same arguments as types inres.format - Support proper 205 responses using
res.send - Use
http-errorsforres.formaterror - deps: body-parser@1.20.0
- Fix error message for json parse whitespace in
strict - Fix internal error when inflated body exceeds limit
- Prevent loss of async hooks context
- Prevent hanging when request already read
- deps: depd@2.0.0
- deps: http-errors@2.0.0
- deps: on-finished@2.4.1
- deps: qs@6.10.3
- deps: raw-body@2.5.1
- Fix error message for json parse whitespace in
- deps: cookie@0.5.0
- Add
priorityoption - Fix
expiresoption to reject invalid dates
- Add
- deps: depd@2.0.0
- Replace internal
evalusage withFunctionconstructor - Use instance methods on
processto check for listeners
- Replace internal
- deps: finalhandler@1.2.0
- Remove set content headers that break response
- deps: on-finished@2.4.1
- deps: statuses@2.0.1
- deps: on-finished@2.4.1
- Prevent loss of async hooks context
- deps: qs@6.10.3
- deps: send@0.18.0
- Fix emitted 416 error missing headers property
- Limit the headers removed for 304 response
- deps: depd@2.0.0
- deps: destroy@1.2.0
- deps: http-errors@2.0.0
- deps: on-finished@2.4.1
- deps: statuses@2.0.1
- deps: serve-static@1.15.0
- deps: send@0.18.0
- deps: statuses@2.0.1
- Remove code 306
- Rename
425 Unordered Collectionto standard425 Too Early
4.17.3 / 2022-02-16
- deps: accepts@~1.3.8
- deps: mime-types@~2.1.34
- deps: negotiator@0.6.3
- deps: body-parser@1.19.2
- deps: bytes@3.1.2
- deps: qs@6.9.7
- deps: raw-body@2.4.3
- deps: cookie@0.4.2
- deps: qs@6.9.7
- Fix handling of
__proto__keys
- Fix handling of
- pref: remove unnecessary regexp for trust proxy
4.17.2 / 2021-12-16
- Fix handling of
undefinedinres.jsonp - Fix handling of
undefinedwhen"json escape"is enabled - Fix incorrect middleware execution with unanchored
RegExps - Fix
res.jsonp(obj, status)deprecation message - Fix typo in
res.isJSDoc - deps: body-parser@1.19.1
- deps: bytes@3.1.1
- deps: http-errors@1.8.1
- deps: qs@6.9.6
- deps: raw-body@2.4.2
- deps: safe-buffer@5.2.1
- deps: type-is@~1.6.18
- deps: content-disposition@0.5.4
- deps: safe-buffer@5.2.1
- deps: cookie@0.4.1
- Fix
maxAgeoption to reject invalid values
- Fix
- deps: proxy-addr@~2.0.7
- Use
req.socketover deprecatedreq.connection - deps: forwarded@0.2.0
- deps: ipaddr.js@1.9.1
- Use
- deps: qs@6.9.6
- deps: safe-buffer@5.2.1
- deps: send@0.17.2
- deps: http-errors@1.8.1
- deps: ms@2.1.3
- pref: ignore empty http tokens
- deps: serve-static@1.14.2
- deps: send@0.17.2
- deps: setprototypeof@1.2.0
4.17.1 / 2019-05-25
- Revert "Improve error message for
null/undefinedtores.status"
4.17.0 / 2019-05-16
- Add
express.rawto parse bodies intoBuffer - Add
express.textto parse bodies into string - Improve error message for non-strings to
res.sendFile - Improve error message for
null/undefinedtores.status - Support multiple hosts in
X-Forwarded-Host - deps: accepts@~1.3.7
- deps: body-parser@1.19.0
- Add encoding MIK
- Add petabyte (
pb) support - Fix parsing array brackets after index
- deps: bytes@3.1.0
- deps: http-errors@1.7.2
- deps: iconv-lite@0.4.24
- deps: qs@6.7.0
- deps: raw-body@2.4.0
- deps: type-is@~1.6.17
- deps: content-disposition@0.5.3
- deps: cookie@0.4.0
- Add
SameSite=Nonesupport
- Add
- deps: finalhandler@~1.1.2
- Set stricter
Content-Security-Policyheader - deps: parseurl@~1.3.3
- deps: statuses@~1.5.0
- Set stricter
- deps: parseurl@~1.3.3
- deps: proxy-addr@~2.0.5
- deps: ipaddr.js@1.9.0
- deps: qs@6.7.0
- Fix parsing array brackets after index
- deps: range-parser@~1.2.1
- deps: send@0.17.1
- Set stricter CSP header in redirect & error responses
- deps: http-errors@~1.7.2
- deps: mime@1.6.0
- deps: ms@2.1.1
- deps: range-parser@~1.2.1
- deps: statuses@~1.5.0
- perf: remove redundant
path.normalizecall
- deps: serve-static@1.14.1
- Set stricter CSP header in redirect response
- deps: parseurl@~1.3.3
- deps: send@0.17.1
- deps: setprototypeof@1.1.1
- deps: statuses@~1.5.0
- Add
103 Early Hints
- Add
- deps: type-is@~1.6.18
- deps: mime-types@~2.1.24
- perf: prevent internal
throwon invalid type
4.16.4 / 2018-10-10
- Fix issue where
"Request aborted"may be logged inres.sendfile - Fix JSDoc for
Routerconstructor - deps: body-parser@1.18.3
- Fix deprecation warnings on Node.js 10+
- Fix stack trace for strict json parse error
- deps: depd@~1.1.2
- deps: http-errors@~1.6.3
- deps: iconv-lite@0.4.23
- deps: qs@6.5.2
- deps: raw-body@2.3.3
- deps: type-is@~1.6.16
- deps: proxy-addr@~2.0.4
- deps: ipaddr.js@1.8.0
- deps: qs@6.5.2
- deps: safe-buffer@5.1.2
4.16.3 / 2018-03-12
- deps: accepts@~1.3.5
- deps: mime-types@~2.1.18
- deps: depd@~1.1.2
- perf: remove argument reassignment
- deps: encodeurl@~1.0.2
- Fix encoding
%as last character
- Fix encoding
- deps: finalhandler@1.1.1
- Fix 404 output for bad / missing pathnames
- deps: encodeurl@~1.0.2
- deps: statuses@~1.4.0
- deps: proxy-addr@~2.0.3
- deps: ipaddr.js@1.6.0
- deps: send@0.16.2
- Fix incorrect end tag in default error & redirects
- deps: depd@~1.1.2
- deps: encodeurl@~1.0.2
- deps: statuses@~1.4.0
- deps: serve-static@1.13.2
- Fix incorrect end tag in redirects
- deps: encodeurl@~1.0.2
- deps: send@0.16.2
- deps: statuses@~1.4.0
- deps: type-is@~1.6.16
- deps: mime-types@~2.1.18
4.16.2 / 2017-10-09
- Fix
TypeErrorinres.sendwhen givenBufferandETagheader set - perf: skip parsing of entire
X-Forwarded-Protoheader
4.16.1 / 2017-09-29
- deps: send@0.16.1
- deps: serve-static@1.13.1
- Fix regression when
rootis incorrectly set to a file - deps: send@0.16.1
- Fix regression when
4.16.0 / 2017-09-28
- Add
"json escape"setting forres.jsonandres.jsonp - Add
express.jsonandexpress.urlencodedto parse bodies - Add
optionsargument tores.download - Improve error message when autoloading invalid view engine
- Improve error messages when non-function provided as middleware
- Skip
Bufferencoding when not generating ETag for small response - Use
safe-bufferfor improved Buffer API - deps: accepts@~1.3.4
- deps: mime-types@~2.1.16
- deps: content-type@~1.0.4
- perf: remove argument reassignment
- perf: skip parameter parsing when no parameters
- deps: etag@~1.8.1
- perf: replace regular expression with substring
- deps: finalhandler@1.1.0
- Use
res.headersSentwhen available
- Use
- deps: parseurl@~1.3.2
- perf: reduce overhead for full URLs
- perf: unroll the "fast-path"
RegExp
- deps: proxy-addr@~2.0.2
- Fix trimming leading / trailing OWS in
X-Forwarded-For - deps: forwarded@~0.1.2
- deps: ipaddr.js@1.5.2
- perf: reduce overhead when no
X-Forwarded-Forheader
- Fix trimming leading / trailing OWS in
- deps: qs@6.5.1
- Fix parsing & compacting very deep objects
- deps: send@0.16.0
- Add 70 new types for file extensions
- Add
immutableoption - Fix missing
</html>in default error & redirects - Set charset as "UTF-8" for .js and .json
- Use instance methods on steam to check for listeners
- deps: mime@1.4.1
- perf: improve path validation speed
- deps: serve-static@1.13.0
- Add 70 new types for file extensions
- Add
immutableoption - Set charset as "UTF-8" for .js and .json
- deps: send@0.16.0
- deps: setprototypeof@1.1.0
- deps: utils-merge@1.0.1
- deps: vary@~1.1.2
- perf: improve header token parsing speed
- perf: re-use options object when generating ETags
- perf: remove dead
.charsetset inres.jsonp
4.15.5 / 2017-09-24
- deps: debug@2.6.9
- deps: finalhandler@~1.0.6
- deps: debug@2.6.9
- deps: parseurl@~1.3.2
- deps: fresh@0.5.2
- Fix handling of modified headers with invalid dates
- perf: improve ETag match loop
- perf: improve
If-None-Matchtoken parsing
- deps: send@0.15.6
- Fix handling of modified headers with invalid dates
- deps: debug@2.6.9
- deps: etag@~1.8.1
- deps: fresh@0.5.2
- perf: improve
If-Matchtoken parsing
- deps: serve-static@1.12.6
- deps: parseurl@~1.3.2
- deps: send@0.15.6
- perf: improve slash collapsing
4.15.4 / 2017-08-06
- deps: debug@2.6.8
- deps: depd@~1.1.1
- Remove unnecessary
Bufferloading
- Remove unnecessary
- deps: finalhandler@~1.0.4
- deps: debug@2.6.8
- deps: proxy-addr@~1.1.5
- Fix array argument being altered
- deps: ipaddr.js@1.4.0
- deps: qs@6.5.0
- deps: send@0.15.4
- deps: debug@2.6.8
- deps: depd@~1.1.1
- deps: http-errors@~1.6.2
- deps: serve-static@1.12.4
- deps: send@0.15.4
4.15.3 / 2017-05-16
- Fix error when
res.setcannot add charset toContent-Type - deps: debug@2.6.7
- Fix
DEBUG_MAX_ARRAY_LENGTH - deps: ms@2.0.0
- Fix
- deps: finalhandler@~1.0.3
- Fix missing
</html>in HTML document - deps: debug@2.6.7
- Fix missing
- deps: proxy-addr@~1.1.4
- deps: ipaddr.js@1.3.0
- deps: send@0.15.3
- deps: debug@2.6.7
- deps: ms@2.0.0
- deps: serve-static@1.12.3
- deps: send@0.15.3
- deps: type-is@~1.6.15
- deps: mime-types@~2.1.15
- deps: vary@~1.1.1
- perf: hoist regular expression
4.15.2 / 2017-03-06
- deps: qs@6.4.0
- Fix regression parsing keys starting with
[
- Fix regression parsing keys starting with
4.15.1 / 2017-03-05
- deps: send@0.15.1
- Fix issue when
Date.parsedoes not returnNaNon invalid date - Fix strict violation in broken environments
- Fix issue when
- deps: serve-static@1.12.1
- Fix issue when
Date.parsedoes not returnNaNon invalid date - deps: send@0.15.1
- Fix issue when
4.15.0 / 2017-03-01
- Add debug message when loading view engine
- Add
next("router")to exit from router - Fix case where
router.useskipped requests routes did not - Remove usage of
res._headersprivate field- Improves compatibility with Node.js 8 nightly
- Skip routing when
req.urlis not set - Use
%oin path debug to tell types apart - Use
Object.createto setup request & response prototypes - Use
setprototypeofmodule to replace__proto__setting - Use
statusesinstead ofhttpmodule for status messages - deps: debug@2.6.1
- Allow colors in workers
- Deprecated
DEBUG_FDenvironment variable set to3or higher - Fix error when running under React Native
- Use same color for same namespace
- deps: ms@0.7.2
- deps: etag@~1.8.0
- Use SHA1 instead of MD5 for ETag hashing
- Works with FIPS 140-2 OpenSSL configuration
- deps: finalhandler@~1.0.0
- Fix exception when
errcannot be converted to a string - Fully URL-encode the pathname in the 404
- Only include the pathname in the 404 message
- Send complete HTML document
- Set
Content-Security-Policy: default-src 'self'header - deps: debug@2.6.1
- Fix exception when
- deps: fresh@0.5.0
- Fix false detection of
no-cacherequest directive - Fix incorrect result when
If-None-Matchhas both*and ETags - Fix weak
ETagmatching to match spec - perf: delay reading header values until needed
- perf: enable strict mode
- perf: hoist regular expressions
- perf: remove duplicate conditional
- perf: remove unnecessary boolean coercions
- perf: skip checking modified time if ETag check failed
- perf: skip parsing
If-None-Matchwhen noETagheader - perf: use
Date.parseinstead ofnew Date
- Fix false detection of
- deps: qs@6.3.1
- Fix array parsing from skipping empty values
- Fix compacting nested arrays
- deps: send@0.15.0
- Fix false detection of
no-cacherequest directive - Fix incorrect result when
If-None-Matchhas both*and ETags - Fix weak
ETagmatching to match spec - Remove usage of
res._headersprivate field - Support
If-MatchandIf-Unmodified-Sinceheaders - Use
res.getHeaderNames()when available - Use
res.headersSentwhen available - deps: debug@2.6.1
- deps: etag@~1.8.0
- deps: fresh@0.5.0
- deps: http-errors@~1.6.1
- Fix false detection of
- deps: serve-static@1.12.0
- Fix false detection of
no-cacherequest directive - Fix incorrect result when
If-None-Matchhas both*and ETags - Fix weak
ETagmatching to match spec - Remove usage of
res._headersprivate field - Send complete HTML document in redirect response
- Set default CSP header in redirect response
- Support
If-MatchandIf-Unmodified-Sinceheaders - Use
res.getHeaderNames()when available - Use
res.headersSentwhen available - deps: send@0.15.0
- Fix false detection of
- perf: add fast match path for
*route - perf: improve
req.ipsperformance
4.14.1 / 2017-01-28
- deps: content-disposition@0.5.2
- deps: finalhandler@0.5.1
- Fix exception when
err.headersis not an object - deps: statuses@~1.3.1
- perf: hoist regular expressions
- perf: remove duplicate validation path
- Fix exception when
- deps: proxy-addr@~1.1.3
- deps: ipaddr.js@1.2.0
- deps: send@0.14.2
- deps: http-errors@~1.5.1
- deps: ms@0.7.2
- deps: statuses@~1.3.1
- deps: serve-static@~1.11.2
- deps: send@0.14.2
- deps: type-is@~1.6.14
- deps: mime-types@~2.1.13
4.14.0 / 2016-06-16
- Add
acceptRangesoption tores.sendFile/res.sendfile - Add
cacheControloption tores.sendFile/res.sendfile - Add
optionsargument toreq.range- Includes the
combineoption
- Includes the
- Encode URL in
res.location/res.redirectif not already encoded - Fix some redirect handling in
res.sendFile/res.sendfile - Fix Windows absolute path check using forward slashes
- Improve error with invalid arguments to
req.get() - Improve performance for
res.json/res.jsonpin most cases - Improve
Rangeheader handling inres.sendFile/res.sendfile - deps: accepts@~1.3.3
- Fix including type extensions in parameters in
Acceptparsing - Fix parsing
Acceptparameters with quoted equals - Fix parsing
Acceptparameters with quoted semicolons - Many performance improvements
- deps: mime-types@~2.1.11
- deps: negotiator@0.6.1
- Fix including type extensions in parameters in
- deps: content-type@~1.0.2
- perf: enable strict mode
- deps: cookie@0.3.1
- Add
sameSiteoption - Fix cookie
Max-Ageto never be a floating point number - Improve error message when
encodeis not a function - Improve error message when
expiresis not aDate - Throw better error for invalid argument to parse
- Throw on invalid values provided to
serialize - perf: enable strict mode
- perf: hoist regular expression
- perf: use for loop in parse
- perf: use string concatenation for serialization
- Add
- deps: finalhandler@0.5.0
- Change invalid or non-numeric status code to 500
- Overwrite status message to match set status code
- Prefer
err.statusCodeiferr.statusis invalid - Set response headers from
err.headersobject - Use
statusesinstead ofhttpmodule for status messages
- deps: proxy-addr@~1.1.2
- Fix accepting various invalid netmasks
- Fix IPv6-mapped IPv4 validation edge cases
- IPv4 netmasks must be contiguous
- IPv6 addresses cannot be used as a netmask
- deps: ipaddr.js@1.1.1
- deps: qs@6.2.0
- Add
decoderoption inparsefunction
- Add
- deps: range-parser@~1.2.0
- Add
combineoption to combine overlapping ranges - Fix incorrectly returning -1 when there is at least one valid range
- perf: remove internal function
- Add
- deps: send@0.14.1
- Add
acceptRangesoption - Add
cacheControloption - Attempt to combine multiple ranges into single range
- Correctly inherit from
Streamclass - Fix
Content-Rangeheader in 416 responses when usingstart/endoptions - Fix
Content-Rangeheader missing from default 416 responses - Fix redirect error when
pathcontains raw non-URL characters - Fix redirect when
pathstarts with multiple forward slashes - Ignore non-byte
Rangeheaders - deps: http-errors@~1.5.0
- deps: range-parser@~1.2.0
- deps: statuses@~1.3.0
- perf: remove argument reassignment
- Add
- deps: serve-static@~1.11.1
- Add
acceptRangesoption - Add
cacheControloption - Attempt to combine multiple ranges into single range
- Fix redirect error when
req.urlcontains raw non-URL characters - Ignore non-byte
Rangeheaders - Use status code 301 for redirects
- deps: send@0.14.1
- Add
- deps: type-is@~1.6.13
- Fix type error when given invalid type to match against
- deps: mime-types@~2.1.11
- deps: vary@~1.1.0
- Only accept valid field names in the
fieldargument
- Only accept valid field names in the
- perf: use strict equality when possible
4.13.4 / 2016-01-21
- deps: content-disposition@0.5.1
- perf: enable strict mode
- deps: cookie@0.1.5
- Throw on invalid values provided to
serialize
- Throw on invalid values provided to
- deps: depd@~1.1.0
- Support web browser loading
- perf: enable strict mode
- deps: escape-html@~1.0.3
- perf: enable strict mode
- perf: optimize string replacement
- perf: use faster string coercion
- deps: finalhandler@0.4.1
- deps: escape-html@~1.0.3
- deps: merge-descriptors@1.0.1
- perf: enable strict mode
- deps: methods@~1.1.2
- perf: enable strict mode
- deps: parseurl@~1.3.1
- perf: enable strict mode
- deps: proxy-addr@~1.0.10
- deps: ipaddr.js@1.0.5
- perf: enable strict mode
- deps: range-parser@~1.0.3
- perf: enable strict mode
- deps: send@0.13.1
- deps: depd@~1.1.0
- deps: destroy@~1.0.4
- deps: escape-html@~1.0.3
- deps: range-parser@~1.0.3
- deps: serve-static@~1.10.2
- deps: escape-html@~1.0.3
- deps: parseurl@~1.3.0
- deps: send@0.13.1
4.13.3 / 2015-08-02
- Fix infinite loop condition using
mergeParams: true - Fix inner numeric indices incorrectly altering parent
req.params
4.13.2 / 2015-07-31
- deps: accepts@~1.2.12
- deps: mime-types@~2.1.4
- deps: 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
- deps: type-is@~1.6.6
- deps: mime-types@~2.1.4
4.13.1 / 2015-07-05
- deps: accepts@~1.2.10
- deps: mime-types@~2.1.2
- deps: qs@4.0.0
- Fix dropping parameters like
hasOwnProperty - Fix various parsing edge cases
- Fix dropping parameters like
- deps: type-is@~1.6.4
- deps: mime-types@~2.1.2
- perf: enable strict mode
- perf: remove argument reassignment
4.13.0 / 2015-06-20
- Add settings to debug output
- Fix
res.formaterror when onlydefaultprovided - Fix issue where
next('route')inapp.paramwould incorrectly skip values - Fix hiding platform issues with
decodeURIComponent- Only
URIErrors are a 400
- Only
- Fix using
*before params in routes - Fix using capture groups before params in routes
- Simplify
res.cookieto callres.append - Use
array-flattenmodule for flattening arrays - deps: accepts@~1.2.9
- deps: mime-types@~2.1.1
- perf: avoid argument reassignment & argument slice
- perf: avoid negotiator recursive construction
- perf: enable strict mode
- perf: remove unnecessary bitwise operator
- 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: finalhandler@0.4.0
- Fix a false-positive when unpiping in Node.js 0.8
- Support
statusCodeproperty onErrorobjects - Use
unpipemodule for unpiping requests - deps: escape-html@1.0.2
- deps: on-finished@~2.3.0
- perf: enable strict mode
- perf: remove argument reassignment
- deps: fresh@0.3.0
- Add weak
ETagmatching support
- Add weak
- deps: on-finished@~2.3.0
- Add defined behavior for HTTP
CONNECTrequests - Add defined behavior for HTTP
Upgraderequests - deps: ee-first@1.1.1
- Add defined behavior for HTTP
- deps: path-to-regexp@0.1.6
- deps: send@0.13.0
- Allow Node.js HTTP server to set
Dateresponse header - Fix incorrectly removing
Content-Locationon 304 response - Improve the default redirect response headers
- Send appropriate headers on default error response
- Use
http-errorsfor standard emitted errors - Use
statusesinstead ofhttpmodule 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
- Allow Node.js HTTP server to set
- deps: serve-static@~1.10.0
- Add
fallthroughoption - Fix reading options from options prototype
- Improve the default redirect response headers
- Malformed URLs now
next()instead of 400 - deps: escape-html@1.0.2
- deps: send@0.13.0
- perf: enable strict mode
- perf: remove argument reassignment
- Add
- deps: type-is@~1.6.3
- deps: mime-types@~2.1.1
- perf: reduce try block size
- perf: remove bitwise operations
- perf: enable strict mode
- perf: isolate
app.rendertry block - perf: remove argument reassignments in application
- perf: remove argument reassignments in request prototype
- perf: remove argument reassignments in response prototype
- perf: remove argument reassignments in routing
- perf: remove argument reassignments in
View - perf: skip attempting to decode zero length string
- perf: use saved reference to
http.STATUS_CODES
4.12.4 / 2015-05-17
- deps: accepts@~1.2.7
- deps: mime-types@~2.0.11
- deps: negotiator@0.5.3
- deps: debug@~2.2.0
- deps: ms@0.7.1
- deps: depd@~1.0.1
- deps: etag@~1.6.0
- Improve support for JXcore
- Support "fake" stats objects in environments without
fs
- deps: finalhandler@0.3.6
- deps: debug@~2.2.0
- deps: on-finished@~2.2.1
- deps: on-finished@~2.2.1
- Fix
isFinished(req)when data buffered
- Fix
- deps: proxy-addr@~1.0.8
- deps: ipaddr.js@1.0.1
- deps: qs@2.4.2
- Fix allowing parameters like
constructor
- deps: send@0.12.3
- deps: debug@~2.2.0
- deps: depd@~1.0.1
- deps: etag@~1.6.0
- deps: ms@0.7.1
- deps: on-finished@~2.2.1
- deps: serve-static@~1.9.3
- deps: send@0.12.3
- deps: type-is@~1.6.2
- deps: mime-types@~2.0.11
4.12.3 / 2015-03-17
- deps: accepts@~1.2.5
- deps: mime-types@~2.0.10
- deps: debug@~2.1.3
- Fix high intensity foreground color for bold
- deps: ms@0.7.0
- deps: finalhandler@0.3.4
- deps: debug@~2.1.3
- deps: proxy-addr@~1.0.7
- deps: ipaddr.js@0.1.9
- deps: qs@2.4.1
- Fix error when parameter
hasOwnPropertyis present
- Fix error when parameter
- deps: send@0.12.2
- Throw errors early for invalid
extensionsorindexoptions - deps: debug@~2.1.3
- Throw errors early for invalid
- deps: serve-static@~1.9.2
- deps: send@0.12.2
- deps: type-is@~1.6.1
- deps: mime-types@~2.0.10
4.12.2 / 2015-03-02
- Fix regression where
"Request aborted"is logged usingres.sendFile
4.12.1 / 2015-03-01
- Fix constructing application with non-configurable prototype properties
- Fix
ECONNRESETerrors fromres.sendFileusage - Fix
req.hostwhen using "trust proxy" hops count - Fix
req.protocol/req.securewhen using "trust proxy" hops count - Fix wrong
codeon aborted connections fromres.sendFile - deps: merge-descriptors@1.0.0
4.12.0 / 2015-02-23
- Fix
"trust proxy"setting to inherit when app is mounted - Generate
ETags for all request responses- No longer restricted to only responses for
GETandHEADrequests
- No longer restricted to only responses for
- Use
content-typeto parseContent-Typeheaders - deps: accepts@~1.2.4
- Fix preference sorting to be stable for long acceptable lists
- deps: mime-types@~2.0.9
- deps: negotiator@0.5.1
- deps: cookie-signature@1.0.6
- deps: send@0.12.1
- Always read the stat size from the file
- Fix mutating passed-in
options - deps: mime@1.3.4
- deps: serve-static@~1.9.1
- deps: send@0.12.1
- deps: type-is@~1.6.0
- fix argument reassignment
- fix false-positives in
hasBodyTransfer-Encodingcheck - support wildcard for both type and subtype (
*/*) - deps: mime-types@~2.0.9
4.11.2 / 2015-02-01
- Fix
res.redirectdouble-callingres.endforHEADrequests - deps: accepts@~1.2.3
- deps: mime-types@~2.0.8
- deps: proxy-addr@~1.0.6
- deps: ipaddr.js@0.1.8
- deps: type-is@~1.5.6
- deps: mime-types@~2.0.8
4.11.1 / 2015-01-20
- deps: send@0.11.1
- Fix root path disclosure
- deps: serve-static@~1.8.1
- Fix redirect loop in Node.js 0.11.14
- Fix root path disclosure
- deps: send@0.11.1
4.11.0 / 2015-01-13
- Add
res.append(field, val)to append headers - Deprecate leading
:innameforapp.param(name, fn) - Deprecate
req.param()-- usereq.params,req.body, orreq.queryinstead - Deprecate
app.param(fn) - Fix
OPTIONSresponses to include theHEADmethod properly - Fix
res.sendFilenot always detecting aborted connection - Match routes iteratively to prevent stack overflows
- deps: accepts@~1.2.2
- deps: mime-types@~2.0.7
- deps: negotiator@0.5.0
- deps: send@0.11.0
- deps: debug@~2.1.1
- deps: etag@~1.5.1
- deps: ms@0.7.0
- deps: on-finished@~2.2.0
- deps: serve-static@~1.8.0
- deps: send@0.11.0
4.10.8 / 2015-01-13
- Fix crash from error within
OPTIONSresponse handler - deps: proxy-addr@~1.0.5
- deps: ipaddr.js@0.1.6
4.10.7 / 2015-01-04
- Fix
Allowheader forOPTIONSto not contain duplicate methods - Fix incorrect "Request aborted" for
res.sendFilewhenHEADor 304 - deps: debug@~2.1.1
- deps: finalhandler@0.3.3
- deps: debug@~2.1.1
- deps: on-finished@~2.2.0
- deps: methods@~1.1.1
- deps: on-finished@~2.2.0
- deps: serve-static@~1.7.2
- Fix potential open redirect when mounted at root
- deps: type-is@~1.5.5
- deps: mime-types@~2.0.7
4.10.6 / 2014-12-12
- Fix exception in
req.fresh/req.stalewithout response headers
4.10.5 / 2014-12-10
- Fix
res.senddouble-callingres.endforHEADrequests - deps: accepts@~1.1.4
- deps: mime-types@~2.0.4
- deps: type-is@~1.5.4
- deps: mime-types@~2.0.4
4.10.4 / 2014-11-24
- Fix
res.sendfilelogging standard write errors
4.10.3 / 2014-11-23
- Fix
res.sendFilelogging standard write errors - deps: etag@~1.5.1
- deps: proxy-addr@~1.0.4
- deps: ipaddr.js@0.1.5
- deps: qs@2.3.3
- Fix
arrayLimitbehavior
- Fix
4.10.2 / 2014-11-09
- Correctly invoke async router callback asynchronously
- deps: accepts@~1.1.3
- deps: mime-types@~2.0.3
- deps: type-is@~1.5.3
- deps: mime-types@~2.0.3
4.10.1 / 2014-10-28
- Fix handling of URLs containing
://in the path - deps: qs@2.3.2
- Fix parsing of mixed objects and values
4.10.0 / 2014-10-23
- Add support for
app.set('views', array)- Views are looked up in sequence in array of directories
- Fix
res.send(status)to mentionres.sendStatus(status) - Fix handling of invalid empty URLs
- Use
content-dispositionmodule forres.attachment/res.download- Sends standards-compliant
Content-Dispositionheader - Full Unicode support
- Sends standards-compliant
- Use
path.resolvein view lookup - deps: debug@~2.1.0
- Implement
DEBUG_FDenv variable support
- Implement
- deps: depd@~1.0.0
- deps: etag@~1.5.0
- Improve string performance
- Slightly improve speed for weak ETags over 1KB
- deps: finalhandler@0.3.2
- Terminate in progress response only on error
- Use
on-finishedto determine request status - deps: debug@~2.1.0
- deps: on-finished@~2.1.1
- deps: on-finished@~2.1.1
- Fix handling of pipelined requests
- deps: qs@2.3.0
- Fix parsing of mixed implicit and explicit arrays
- deps: send@0.10.1
- deps: debug@~2.1.0
- deps: depd@~1.0.0
- deps: etag@~1.5.0
- deps: on-finished@~2.1.1
- deps: serve-static@~1.7.1
- deps: send@0.10.1
4.9.8 / 2014-10-17
- Fix
res.redirectbody when redirect status specified - deps: accepts@~1.1.2
- Fix error when media type has invalid parameter
- deps: negotiator@0.4.9
4.9.7 / 2014-10-10
- Fix using same param name in array of paths
4.9.6 / 2014-10-08
- deps: accepts@~1.1.1
- deps: mime-types@~2.0.2
- deps: negotiator@0.4.8
- deps: serve-static@~1.6.4
- Fix redirect loop when index file serving disabled
- deps: type-is@~1.5.2
- deps: mime-types@~2.0.2
4.9.5 / 2014-09-24
- deps: etag@~1.4.0
- deps: proxy-addr@~1.0.3
- Use
forwardednpm module
- Use
- deps: send@0.9.3
- deps: etag@~1.4.0
- deps: serve-static@~1.6.3
- deps: send@0.9.3
4.9.4 / 2014-09-19
- deps: qs@2.2.4
- Fix issue with object keys starting with numbers truncated
4.9.3 / 2014-09-18
- deps: proxy-addr@~1.0.2
- Fix a global leak when multiple subnets are trusted
- deps: ipaddr.js@0.1.3
4.9.2 / 2014-09-17
- Fix regression for empty string
pathinapp.use - Fix
router.useto accept array of middleware without path - Improve error message for bad
app.usearguments
4.9.1 / 2014-09-16
- Fix
app.useto accept array of middleware without path - deps: depd@0.4.5
- deps: etag@~1.3.1
- deps: send@0.9.2
- deps: depd@0.4.5
- deps: etag@~1.3.1
- deps: range-parser@~1.0.2
- deps: serve-static@~1.6.2
- deps: send@0.9.2
4.9.0 / 2014-09-08
- Add
res.sendStatus - Invoke callback for sendfile when client aborts
- Applies to
res.sendFile,res.sendfile, andres.download errwill be populated with request aborted error
- Applies to
- Support IP address host in
req.subdomains - Use
etagto generateETagheaders - deps: accepts@~1.1.0
- update
mime-types
- update
- deps: cookie-signature@1.0.5
- deps: debug@~2.0.0
- deps: finalhandler@0.2.0
- Set
X-Content-Type-Options: nosniffheader - deps: debug@~2.0.0
- Set
- deps: fresh@0.2.4
- deps: media-typer@0.3.0
- Throw error when parameter format invalid on parse
- deps: qs@2.2.3
- Fix issue where first empty value in array is discarded
- deps: range-parser@~1.0.2
- deps: send@0.9.1
- Add
lastModifiedoption - Use
etagto generateETagheader - deps: debug@~2.0.0
- deps: fresh@0.2.4
- Add
- deps: serve-static@~1.6.1
- Add
lastModifiedoption - deps: send@0.9.1
- Add
- deps: type-is@~1.5.1
- fix
hasbodyto be true forcontent-length: 0 - deps: media-typer@0.3.0
- deps: mime-types@~2.0.1
- fix
- deps: vary@~1.0.0
- Accept valid
Varyheader string asfield
- Accept valid
4.8.8 / 2014-09-04
- deps: send@0.8.5
- Fix a path traversal issue when using
root - Fix malicious path detection for empty string path
- Fix a path traversal issue when using
- deps: serve-static@~1.5.4
- deps: send@0.8.5
4.8.7 / 2014-08-29
- deps: qs@2.2.2
- Remove unnecessary cloning
4.8.6 / 2014-08-27
- deps: qs@2.2.0
- Array parsing fix
- Performance improvements
4.8.5 / 2014-08-18
- deps: send@0.8.3
- deps: destroy@1.0.3
- deps: on-finished@2.1.0
- deps: serve-static@~1.5.3
- deps: send@0.8.3
4.8.4 / 2014-08-14
- deps: qs@1.2.2
- deps: send@0.8.2
- Work around
fdleak in Node.js 0.10 forfs.ReadStream
- Work around
- deps: serve-static@~1.5.2
- deps: send@0.8.2
4.8.3 / 2014-08-10
- deps: parseurl@~1.3.0
- deps: qs@1.2.1
- deps: serve-static@~1.5.1
- Fix parsing of weird
req.originalUrlvalues - deps: parseurl@~1.3.0
- deps: utils-merge@1.0.0
- Fix parsing of weird
4.8.2 / 2014-08-07
- deps: qs@1.2.0
- Fix parsing array of objects
4.8.1 / 2014-08-06
- fix incorrect deprecation warnings on
res.download - deps: qs@1.1.0
- Accept urlencoded square brackets
- Accept empty values in implicit array notation
4.8.0 / 2014-08-05
- add
res.sendFile- accepts a file system path instead of a URL
- requires an absolute path or
rootoption specified
- deprecate
res.sendfile-- useres.sendFileinstead - support mounted app as any argument to
app.use() - deps: qs@1.0.2
- Complete rewrite
- Limits array length to 20
- Limits object depth to 5
- Limits parameters to 1,000
- deps: send@0.8.1
- Add
extensionsoption
- Add
- deps: serve-static@~1.5.0
- Add
extensionsoption - deps: send@0.8.1
- Add
4.7.4 / 2014-08-04
- fix
res.sendfileregression for serving directory index files - deps: send@0.7.4
- Fix incorrect 403 on Windows and Node.js 0.11
- Fix serving index files without root dir
- deps: serve-static@~1.4.4
- deps: send@0.7.4
4.7.3 / 2014-08-04
- deps: send@0.7.3
- Fix incorrect 403 on Windows and Node.js 0.11
- deps: serve-static@~1.4.3
- Fix incorrect 403 on Windows and Node.js 0.11
- deps: send@0.7.3
4.7.2 / 2014-07-27
- deps: depd@0.4.4
- Work-around v8 generating empty stack traces
- deps: send@0.7.2
- deps: depd@0.4.4
- deps: serve-static@~1.4.2
4.7.1 / 2014-07-26
- deps: depd@0.4.3
- Fix exception when global
Error.stackTraceLimitis too low
- Fix exception when global
- deps: send@0.7.1
- deps: depd@0.4.3
- deps: serve-static@~1.4.1
4.7.0 / 2014-07-25
- fix
req.protocolfor proxy-direct connections - configurable query parser with
app.set('query parser', parser)app.set('query parser', 'extended')parse with "qs" moduleapp.set('query parser', 'simple')parse with "querystring" core moduleapp.set('query parser', false)disable query string parsingapp.set('query parser', true)enable simple parsing
- deprecate
res.json(status, obj)-- useres.status(status).json(obj)instead - deprecate
res.jsonp(status, obj)-- useres.status(status).jsonp(obj)instead - deprecate
res.send(status, body)-- useres.status(status).send(body)instead - deps: debug@1.0.4
- deps: depd@0.4.2
- Add
TRACE_DEPRECATIONenvironment variable - Remove non-standard grey color from color output
- Support
--no-deprecationargument - Support
--trace-deprecationargument
- Add
- deps: finalhandler@0.1.0
- Respond after request fully read
- deps: debug@1.0.4
- deps: parseurl@~1.2.0
- Cache URLs based on original value
- Remove no-longer-needed URL mis-parse work-around
- Simplify the "fast-path"
RegExp
- deps: send@0.7.0
- Add
dotfilesoption - Cap
maxAgevalue to 1 year - deps: debug@1.0.4
- deps: depd@0.4.2
- Add
- deps: serve-static@~1.4.0
- deps: parseurl@~1.2.0
- deps: send@0.7.0
- perf: prevent multiple
Buffercreation inres.send
4.6.1 / 2014-07-12
- fix
subapp.mountpathregression forapp.use(subapp)
4.6.0 / 2014-07-11
- accept multiple callbacks to
app.use() - add explicit "Rosetta Flash JSONP abuse" protection
- previous versions are not vulnerable; this is just explicit protection
- catch errors in multiple
req.param(name, fn)handlers - deprecate
res.redirect(url, status)-- useres.redirect(status, url)instead - fix
res.send(status, num)to sendnumas json (not error) - remove unnecessary escaping when
res.jsonpreturns JSON response - support non-string
pathinapp.use(path, fn)- supports array of paths
- supports
RegExp
- router: fix optimization on router exit
- router: refactor location of
tryblocks - router: speed up standard
app.use(fn) - deps: debug@1.0.3
- Add support for multiple wildcards in namespaces
- deps: finalhandler@0.0.3
- deps: debug@1.0.3
- deps: methods@1.1.0
- add
CONNECT
- add
- deps: parseurl@~1.1.3
- faster parsing of href-only URLs
- deps: path-to-regexp@0.1.3
- deps: send@0.6.0
- deps: debug@1.0.3
- deps: serve-static@~1.3.2
- deps: parseurl@~1.1.3
- deps: send@0.6.0
- perf: fix arguments reassign deopt in some
resmethods
4.5.1 / 2014-07-06
- fix routing regression when altering
req.method
4.5.0 / 2014-07-04
- add deprecation message to non-plural
req.accepts* - add deprecation message to
res.send(body, status) - add deprecation message to
res.vary() - add
headersoption tores.sendfile- use to set headers on successful file transfer
- add
mergeParamsoption toRouter- merges
req.paramsfrom parent routes
- merges
- add
req.hostname-- correct name for whatreq.hostreturns - deprecate things with
depdmodule - deprecate
req.host-- usereq.hostnameinstead - fix behavior when handling request without routes
- fix handling when
route.allis only route - invoke
router.param()only when route matches - restore
req.paramsafter invoking router - use
finalhandlerfor final response handling - use
media-typerto alter content-type charset - deps: accepts@~1.0.7
- deps: send@0.5.0
- Accept string for
maxage(converted byms) - Include link in default redirect response
- Accept string for
- deps: serve-static@~1.3.0
- Accept string for
maxAge(converted byms) - Add
setHeadersoption - Include HTML link in redirect response
- deps: send@0.5.0
- Accept string for
- deps: type-is@~1.3.2
4.4.5 / 2014-06-26
- deps: cookie-signature@1.0.4
- fix for timing attacks
4.4.4 / 2014-06-20
- fix
res.attachmentUnicode filenames in Safari - fix "trim prefix" debug message in
express:router - deps: accepts@~1.0.5
- deps: buffer-crc32@0.2.3
4.4.3 / 2014-06-11
- fix persistence of modified
req.params[name]fromapp.param() - deps: accepts@1.0.3
- deps: negotiator@0.4.6
- deps: debug@1.0.2
- deps: send@0.4.3
- Do not throw uncatchable error on file open race condition
- Use
escape-htmlfor HTML escaping - deps: debug@1.0.2
- deps: finished@1.2.2
- deps: fresh@0.2.2
- deps: serve-static@1.2.3
- Do not throw uncatchable error on file open race condition
- deps: send@0.4.3
4.4.2 / 2014-06-09
- fix catching errors from top-level handlers
- use
varymodule forres.vary - deps: debug@1.0.1
- deps: proxy-addr@1.0.1
- deps: send@0.4.2
- fix "event emitter leak" warnings
- deps: debug@1.0.1
- deps: finished@1.2.1
- deps: serve-static@1.2.2
- fix "event emitter leak" warnings
- deps: send@0.4.2
- deps: type-is@1.2.1
4.4.1 / 2014-06-02
- deps: methods@1.0.1
- deps: send@0.4.1
- Send
max-ageinCache-Controlin correct format
- Send
- deps: serve-static@1.2.1
- use
escape-htmlfor escaping - deps: send@0.4.1
- use
4.4.0 / 2014-05-30
- custom etag control with
app.set('etag', val)app.set('etag', function(body, encoding){ return '"etag"' })custom etag generationapp.set('etag', 'weak')weak tagapp.set('etag', 'strong')strong etagapp.set('etag', false)turn offapp.set('etag', true)standard etag
- mark
res.sendETag as weak and reduce collisions - update accepts to 1.0.2
- Fix interpretation when header not in request
- update send to 0.4.0
- Calculate ETag with md5 for reduced collisions
- Ignore stream errors after request ends
- deps: debug@0.8.1
- update serve-static to 1.2.0
- Calculate ETag with md5 for reduced collisions
- Ignore stream errors after request ends
- deps: send@0.4.0
4.3.2 / 2014-05-28
- fix handling of errors from
router.param()callbacks
4.3.1 / 2014-05-23
- revert "fix behavior of multiple
app.VERBfor the same path"- this caused a regression in the order of route execution
4.3.0 / 2014-05-21
- add
req.baseUrlto access the path stripped fromreq.urlin routes - fix behavior of multiple
app.VERBfor the same path - fix issue routing requests among sub routers
- invoke
router.param()only when necessary instead of every match - proper proxy trust with
app.set('trust proxy', trust)app.set('trust proxy', 1)trust first hopapp.set('trust proxy', 'loopback')trust loopback addressesapp.set('trust proxy', '10.0.0.1')trust single IPapp.set('trust proxy', '10.0.0.1/16')trust subnetapp.set('trust proxy', '10.0.0.1, 10.0.0.2')trust listapp.set('trust proxy', false)turn offapp.set('trust proxy', true)trust everything
- set proper
charsetinContent-Typeforres.send - update type-is to 1.2.0
- support suffix matching
4.2.0 / 2014-05-11
- deprecate
app.del()-- useapp.delete()instead - deprecate
res.json(obj, status)-- useres.json(status, obj)instead- the edge-case
res.json(status, num)requiresres.status(status).json(num)
- the edge-case
- deprecate
res.jsonp(obj, status)-- useres.jsonp(status, obj)instead- the edge-case
res.jsonp(status, num)requiresres.status(status).jsonp(num)
- the edge-case
- fix
req.nextwhen inside router instance - include
ETagheader inHEADrequests - keep previous
Content-Typeforres.jsonp - support PURGE method
- add
app.purge - add
router.purge - include PURGE in
app.all
- add
- update debug to 0.8.0
- add
enable()method - change from stderr to stdout
- add
- update methods to 1.0.0
- add PURGE
4.1.2 / 2014-05-08
- fix
req.hostfor IPv6 literals - fix
res.jsonperror if callback param is object
4.1.1 / 2014-04-27
- fix package.json to reflect supported node version
4.1.0 / 2014-04-24
- pass options from
res.sendfiletosend - preserve casing of headers in
res.headerandres.set - support unicode file names in
res.attachmentandres.download - update accepts to 1.0.1
- deps: negotiator@0.4.0
- update cookie to 0.1.2
- Fix for maxAge == 0
- made compat with expires field
- update send to 0.3.0
- Accept API options in options object
- Coerce option types
- Control whether to generate etags
- Default directory access to 403 when index disabled
- Fix sending files with dots without root set
- Include file path in etag
- Make "Can't set headers after they are sent." catchable
- Send full entity-body for multi range requests
- Set etags to "weak"
- Support "If-Range" header
- Support multiple index paths
- deps: mime@1.2.11
- update serve-static to 1.1.0
- Accept options directly to
sendmodule - Resolve relative paths at middleware setup
- Use parseurl to parse the URL from request
- deps: send@0.3.0
- Accept options directly to
- update type-is to 1.1.0
- add non-array values support
- add
multipartas a shorthand
4.0.0 / 2014-04-09
- remove:
- node 0.8 support
- connect and connect's patches except for charset handling
- express(1) - moved to express-generator
express.createServer()- it has been deprecated for a long time. Useexpress()app.configure- use logic in your own app codeapp.router- is removedreq.auth- usebasic-authinsteadreq.accepted*- usereq.accepts*()insteadres.location- relative URL resolution is removedres.charset- include the charset in the content type when usingres.set()- all bundled middleware except
static
- change:
app.route->app.mountpathwhen mounting an express app in another express appjson spacesno longer enabled by default in developmentreq.accepts*->req.accepts*s- i.e.req.acceptsEncoding->req.acceptsEncodingsreq.paramsis now an object instead of an arrayres.localsis no longer a function. It is a plain js object. Treat it as such.res.headerSent->res.headersSentto match node.js ServerResponse object
- refactor:
req.accepts*with acceptsreq.iswith type-is- path-to-regexp
- add:
app.router()- returns the app Router instanceapp.route()- Proxy to the app'sRouter#route()method to create a new route- Router & Route - public API
3.21.2 / 2015-07-31
- deps: connect@2.30.2
- deps: body-parser@~1.13.3
- deps: compression@~1.5.2
- deps: errorhandler@~1.4.2
- deps: method-override@~2.3.5
- deps: serve-index@~1.7.2
- deps: type-is@~1.6.6
- deps: vhost@~3.0.1
- deps: vary@~1.0.1
- Fix setting empty header from empty
field - perf: enable strict mode
- perf: remove argument reassignments
- Fix setting empty header from empty
3.21.1 / 2015-07-05
- deps: basic-auth@~1.0.3
- deps: connect@2.30.1
- deps: body-parser@~1.13.2
- deps: compression@~1.5.1
- deps: errorhandler@~1.4.1
- deps: morgan@~1.6.1
- deps: pause@0.1.0
- deps: qs@4.0.0
- deps: serve-index@~1.7.1
- deps: type-is@~1.6.4
3.21.0 / 2015-06-18
- 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
ETagmatching support
- Add weak
- deps: mkdirp@0.5.1
- Work in global strict mode
- deps: send@0.13.0
- Allow Node.js HTTP server to set
Dateresponse header - Fix incorrectly removing
Content-Locationon 304 response - Improve the default redirect response headers
- Send appropriate headers on default error response
- Use
http-errorsfor standard emitted errors - Use
statusesinstead ofhttpmodule 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
- Allow Node.js HTTP server to set
3.20.3 / 2015-05-17
- deps: connect@2.29.2
- deps: body-parser@~1.12.4
- deps: compression@~1.4.4
- deps: connect-timeout@~1.6.2
- deps: debug@~2.2.0
- deps: depd@~1.0.1
- deps: errorhandler@~1.3.6
- deps: finalhandler@0.3.6
- deps: method-override@~2.3.3
- deps: morgan@~1.5.3
- deps: qs@2.4.2
- deps: response-time@~2.3.1
- deps: serve-favicon@~2.2.1
- deps: serve-index@~1.6.4
- deps: serve-static@~1.9.3
- deps: type-is@~1.6.2
- deps: debug@~2.2.0
- deps: ms@0.7.1
- deps: depd@~1.0.1
- deps: proxy-addr@~1.0.8
- deps: ipaddr.js@1.0.1
- deps: send@0.12.3
- deps: debug@~2.2.0
- deps: depd@~1.0.1
- deps: etag@~1.6.0
- deps: ms@0.7.1
- deps: on-finished@~2.2.1
3.20.2 / 2015-03-16
- deps: connect@2.29.1
- deps: body-parser@~1.12.2
- deps: compression@~1.4.3
- deps: connect-timeout@~1.6.1
- deps: debug@~2.1.3
- deps: errorhandler@~1.3.5
- deps: express-session@~1.10.4
- deps: finalhandler@0.3.4
- deps: method-override@~2.3.2
- deps: morgan@~1.5.2
- deps: qs@2.4.1
- deps: serve-index@~1.6.3
- deps: serve-static@~1.9.2
- deps: type-is@~1.6.1
- deps: debug@~2.1.3
- Fix high intensity foreground color for bold
- deps: ms@0.7.0
- deps: merge-descriptors@1.0.0
- deps: proxy-addr@~1.0.7
- deps: ipaddr.js@0.1.9
- deps: send@0.12.2
- Throw errors early for invalid
extensionsorindexoptions - deps: debug@~2.1.3
- Throw errors early for invalid
3.20.1 / 2015-02-28
- Fix
req.hostwhen using "trust proxy" hops count - Fix
req.protocol/req.securewhen using "trust proxy" hops count
3.20.0 / 2015-02-18
- Fix
"trust proxy"setting to inherit when app is mounted - Generate
ETags for all request responses- No longer restricted to only responses for
GETandHEADrequests
- No longer restricted to only responses for
- Use
content-typeto parseContent-Typeheaders - deps: connect@2.29.0
- Use
content-typeto parseContent-Typeheaders - deps: body-parser@~1.12.0
- deps: compression@~1.4.1
- deps: connect-timeout@~1.6.0
- deps: cookie-parser@~1.3.4
- deps: cookie-signature@1.0.6
- deps: csurf@~1.7.0
- deps: errorhandler@~1.3.4
- deps: express-session@~1.10.3
- deps: http-errors@~1.3.1
- deps: response-time@~2.3.0
- deps: serve-index@~1.6.2
- deps: serve-static@~1.9.1
- deps: type-is@~1.6.0
- Use
- deps: cookie-signature@1.0.6
- deps: send@0.12.1
- Always read the stat size from the file
- Fix mutating passed-in
options - deps: mime@1.3.4
3.19.2 / 2015-02-01
- deps: connect@2.28.3
- deps: compression@~1.3.1
- deps: csurf@~1.6.6
- deps: errorhandler@~1.3.3
- deps: express-session@~1.10.2
- deps: serve-index@~1.6.1
- deps: type-is@~1.5.6
- deps: proxy-addr@~1.0.6
- deps: ipaddr.js@0.1.8
3.19.1 / 2015-01-20
- deps: connect@2.28.2
- deps: body-parser@~1.10.2
- deps: serve-static@~1.8.1
- deps: send@0.11.1
- Fix root path disclosure
3.19.0 / 2015-01-09
- Fix
OPTIONSresponses to include theHEADmethod property - Use
readlinefor prompt inexpress(1) - deps: commander@2.6.0
- deps: connect@2.28.1
- deps: body-parser@~1.10.1
- deps: compression@~1.3.0
- deps: connect-timeout@~1.5.0
- deps: csurf@~1.6.4
- deps: debug@~2.1.1
- deps: errorhandler@~1.3.2
- deps: express-session@~1.10.1
- deps: finalhandler@0.3.3
- deps: method-override@~2.3.1
- deps: morgan@~1.5.1
- deps: serve-favicon@~2.2.0
- deps: serve-index@~1.6.0
- deps: serve-static@~1.8.0
- deps: type-is@~1.5.5
- deps: debug@~2.1.1
- deps: methods@~1.1.1
- deps: proxy-addr@~1.0.5
- deps: ipaddr.js@0.1.6
- deps: send@0.11.0
- deps: debug@~2.1.1
- deps: etag@~1.5.1
- deps: ms@0.7.0
- deps: on-finished@~2.2.0
3.18.6 / 2014-12-12
- Fix exception in
req.fresh/req.stalewithout response headers
3.18.5 / 2014-12-11
- deps: connect@2.27.6
- deps: compression@~1.2.2
- deps: express-session@~1.9.3
- deps: http-errors@~1.2.8
- deps: serve-index@~1.5.3
- deps: type-is@~1.5.4
3.18.4 / 2014-11-23
- deps: connect@2.27.4
- deps: body-parser@~1.9.3
- deps: compression@~1.2.1
- deps: errorhandler@~1.2.3
- deps: express-session@~1.9.2
- deps: qs@2.3.3
- deps: serve-favicon@~2.1.7
- deps: serve-static@~1.5.1
- deps: type-is@~1.5.3
- deps: etag@~1.5.1
- deps: proxy-addr@~1.0.4
- deps: ipaddr.js@0.1.5
3.18.3 / 2014-11-09
- deps: connect@2.27.3
- Correctly invoke async callback asynchronously
- deps: csurf@~1.6.3
3.18.2 / 2014-10-28
- deps: connect@2.27.2
- Fix handling of URLs containing
://in the path - deps: body-parser@~1.9.2
- deps: qs@2.3.2
- Fix handling of URLs containing
3.18.1 / 2014-10-22
- Fix internal
utils.mergedeprecation warnings - deps: connect@2.27.1
- deps: body-parser@~1.9.1
- deps: express-session@~1.9.1
- deps: finalhandler@0.3.2
- deps: morgan@~1.4.1
- deps: qs@2.3.0
- deps: serve-static@~1.7.1
- deps: send@0.10.1
- deps: on-finished@~2.1.1
3.18.0 / 2014-10-17
- Use
content-dispositionmodule forres.attachment/res.download- Sends standards-compliant
Content-Dispositionheader - Full Unicode support
- Sends standards-compliant
- Use
etagmodule to generateETagheaders - deps: connect@2.27.0
- Use
http-errorsmodule for creating errors - Use
utils-mergemodule for merging objects - deps: body-parser@~1.9.0
- deps: compression@~1.2.0
- deps: connect-timeout@~1.4.0
- deps: debug@~2.1.0
- deps: depd@~1.0.0
- deps: express-session@~1.9.0
- deps: finalhandler@0.3.1
- deps: method-override@~2.3.0
- deps: morgan@~1.4.0
- deps: response-time@~2.2.0
- deps: serve-favicon@~2.1.6
- deps: serve-index@~1.5.0
- deps: serve-static@~1.7.0
- Use
- deps: debug@~2.1.0
- Implement
DEBUG_FDenv variable support
- Implement
- deps: depd@~1.0.0
- deps: send@0.10.0
- deps: debug@~2.1.0
- deps: depd@~1.0.0
- deps: etag@~1.5.0
3.17.8 / 2014-10-15
- deps: connect@2.26.6
- deps: compression@~1.1.2
- deps: csurf@~1.6.2
- deps: errorhandler@~1.2.2
3.17.7 / 2014-10-08
- deps: connect@2.26.5
- Fix accepting non-object arguments to
logger - deps: serve-static@~1.6.4
- Fix accepting non-object arguments to
3.17.6 / 2014-10-02
- deps: connect@2.26.4
- deps: morgan@~1.3.2
- deps: type-is@~1.5.2
3.17.5 / 2014-09-24
- deps: connect@2.26.3
- deps: body-parser@~1.8.4
- deps: serve-favicon@~2.1.5
- deps: serve-static@~1.6.3
- deps: proxy-addr@~1.0.3
- Use
forwardednpm module
- Use
- deps: send@0.9.3
- deps: etag@~1.4.0
3.17.4 / 2014-09-19
- deps: connect@2.26.2
- deps: body-parser@~1.8.3
- deps: qs@2.2.4
3.17.3 / 2014-09-18
- deps: proxy-addr@~1.0.2
- Fix a global leak when multiple subnets are trusted
- deps: ipaddr.js@0.1.3
3.17.2 / 2014-09-15
- Use
crcinstead ofbuffer-crc32for speed - deps: connect@2.26.1
- deps: body-parser@~1.8.2
- deps: depd@0.4.5
- deps: express-session@~1.8.2
- deps: morgan@~1.3.1
- deps: serve-favicon@~2.1.3
- deps: serve-static@~1.6.2
- deps: depd@0.4.5
- deps: send@0.9.2
- deps: depd@0.4.5
- deps: etag@~1.3.1
- deps: range-parser@~1.0.2
3.17.1 / 2014-09-08
- Fix error in
req.subdomainson empty host
3.17.0 / 2014-09-08
- Support
X-Forwarded-Hostinreq.subdomains - Support IP address host in
req.subdomains - deps: connect@2.26.0
- deps: body-parser@~1.8.1
- deps: compression@~1.1.0
- deps: connect-timeout@~1.3.0
- deps: cookie-parser@~1.3.3
- deps: cookie-signature@1.0.5
- deps: csurf@~1.6.1
- deps: debug@~2.0.0
- deps: errorhandler@~1.2.0
- deps: express-session@~1.8.1
- deps: finalhandler@0.2.0
- deps: fresh@0.2.4
- deps: media-typer@0.3.0
- deps: method-override@~2.2.0
- deps: morgan@~1.3.0
- deps: qs@2.2.3
- deps: serve-favicon@~2.1.3
- deps: serve-index@~1.2.1
- deps: serve-static@~1.6.1
- deps: type-is@~1.5.1
- deps: vhost@~3.0.0
- deps: cookie-signature@1.0.5
- deps: debug@~2.0.0
- deps: fresh@0.2.4
- deps: media-typer@0.3.0
- Throw error when parameter format invalid on parse
- deps: range-parser@~1.0.2
- deps: send@0.9.1
- Add
lastModifiedoption - Use
etagto generateETagheader - deps: debug@~2.0.0
- deps: fresh@0.2.4
- Add
- deps: vary@~1.0.0
- Accept valid
Varyheader string asfield
- Accept valid
3.16.10 / 2014-09-04
- deps: connect@2.25.10
- deps: serve-static@~1.5.4
- deps: send@0.8.5
- Fix a path traversal issue when using
root - Fix malicious path detection for empty string path
- Fix a path traversal issue when using
3.16.9 / 2014-08-29
- deps: connect@2.25.9
- deps: body-parser@~1.6.7
- deps: qs@2.2.2
3.16.8 / 2014-08-27
- deps: connect@2.25.8
- deps: body-parser@~1.6.6
- deps: csurf@~1.4.1
- deps: qs@2.2.0
3.16.7 / 2014-08-18
- deps: connect@2.25.7
- deps: body-parser@~1.6.5
- deps: express-session@~1.7.6
- deps: morgan@~1.2.3
- deps: serve-static@~1.5.3
- deps: send@0.8.3
- deps: destroy@1.0.3
- deps: on-finished@2.1.0
3.16.6 / 2014-08-14
- deps: connect@2.25.6
- deps: body-parser@~1.6.4
- deps: qs@1.2.2
- deps: serve-static@~1.5.2
- deps: send@0.8.2
- Work around
fdleak in Node.js 0.10 forfs.ReadStream
- Work around
3.16.5 / 2014-08-11
- deps: connect@2.25.5
- Fix backwards compatibility in
logger
- Fix backwards compatibility in
3.16.4 / 2014-08-10
- Fix original URL parsing in
res.location - deps: connect@2.25.4
- Fix
querymiddleware breaking with argument - deps: body-parser@~1.6.3
- deps: compression@~1.0.11
- deps: connect-timeout@~1.2.2
- deps: express-session@~1.7.5
- deps: method-override@~2.1.3
- deps: on-headers@~1.0.0
- deps: parseurl@~1.3.0
- deps: qs@1.2.1
- deps: response-time@~2.0.1
- deps: serve-index@~1.1.6
- deps: serve-static@~1.5.1
- Fix
- deps: parseurl@~1.3.0
3.16.3 / 2014-08-07
- deps: connect@2.25.3
- deps: multiparty@3.3.2
3.16.2 / 2014-08-07
- deps: connect@2.25.2
- deps: body-parser@~1.6.2
- deps: qs@1.2.0
3.16.1 / 2014-08-06
- deps: connect@2.25.1
- deps: body-parser@~1.6.1
- deps: qs@1.1.0
3.16.0 / 2014-08-05
- deps: connect@2.25.0
- deps: body-parser@~1.6.0
- deps: compression@~1.0.10
- deps: csurf@~1.4.0
- deps: express-session@~1.7.4
- deps: qs@1.0.2
- deps: serve-static@~1.5.0
- deps: send@0.8.1
- Add
extensionsoption
- Add
3.15.3 / 2014-08-04
- fix
res.sendfileregression for serving directory index files - deps: connect@2.24.3
- deps: serve-index@~1.1.5
- deps: serve-static@~1.4.4
- deps: send@0.7.4
- Fix incorrect 403 on Windows and Node.js 0.11
- Fix serving index files without root dir
3.15.2 / 2014-07-27
- deps: connect@2.24.2
- deps: body-parser@~1.5.2
- deps: depd@0.4.4
- deps: express-session@~1.7.2
- deps: morgan@~1.2.2
- deps: serve-static@~1.4.2
- deps: depd@0.4.4
- Work-around v8 generating empty stack traces
- deps: send@0.7.2
- deps: depd@0.4.4
3.15.1 / 2014-07-26
- deps: connect@2.24.1
- deps: body-parser@~1.5.1
- deps: depd@0.4.3
- deps: express-session@~1.7.1
- deps: morgan@~1.2.1
- deps: serve-index@~1.1.4
- deps: serve-static@~1.4.1
- deps: depd@0.4.3
- Fix exception when global
Error.stackTraceLimitis too low
- Fix exception when global
- deps: send@0.7.1
- deps: depd@0.4.3
3.15.0 / 2014-07-22
- Fix
req.protocolfor proxy-direct connections - Pass options from
res.sendfiletosend - deps: connect@2.24.0
- deps: body-parser@~1.5.0
- deps: compression@~1.0.9
- deps: connect-timeout@~1.2.1
- deps: debug@1.0.4
- deps: depd@0.4.2
- deps: express-session@~1.7.0
- deps: finalhandler@0.1.0
- deps: method-override@~2.1.2
- deps: morgan@~1.2.0
- deps: multiparty@3.3.1
- deps: parseurl@~1.2.0
- deps: serve-static@~1.4.0
- deps: debug@1.0.4
- deps: depd@0.4.2
- Add
TRACE_DEPRECATIONenvironment variable - Remove non-standard grey color from color output
- Support
--no-deprecationargument - Support
--trace-deprecationargument
- Add
- deps: parseurl@~1.2.0
- Cache URLs based on original value
- Remove no-longer-needed URL mis-parse work-around
- Simplify the "fast-path"
RegExp
- deps: send@0.7.0
- Add
dotfilesoption - Cap
maxAgevalue to 1 year - deps: debug@1.0.4
- deps: depd@0.4.2
- Add
3.14.0 / 2014-07-11
- add explicit "Rosetta Flash JSONP abuse" protection
- previous versions are not vulnerable; this is just explicit protection
- deprecate
res.redirect(url, status)-- useres.redirect(status, url)instead - fix
res.send(status, num)to sendnumas json (not error) - remove unnecessary escaping when
res.jsonpreturns JSON response - deps: basic-auth@1.0.0
- support empty password
- support empty username
- deps: connect@2.23.0
- deps: debug@1.0.3
- deps: express-session@~1.6.4
- deps: method-override@~2.1.0
- deps: parseurl@~1.1.3
- deps: serve-static@~1.3.1
- deps: debug@1.0.3
- Add support for multiple wildcards in namespaces
- deps: methods@1.1.0
- add
CONNECT
- add
- deps: parseurl@~1.1.3
- faster parsing of href-only URLs
3.13.0 / 2014-07-03
- add deprecation message to
app.configure - add deprecation message to
req.auth - use
basic-authto parseAuthorizationheader - deps: connect@2.22.0
- deps: csurf@~1.3.0
- deps: express-session@~1.6.1
- deps: multiparty@3.3.0
- deps: serve-static@~1.3.0
- deps: send@0.5.0
- Accept string for
maxage(converted byms) - Include link in default redirect response
- Accept string for
3.12.1 / 2014-06-26
- deps: connect@2.21.1
- deps: cookie-parser@1.3.2
- deps: cookie-signature@1.0.4
- deps: express-session@~1.5.2
- deps: type-is@~1.3.2
- deps: cookie-signature@1.0.4
- fix for timing attacks
3.12.0 / 2014-06-21
- use
media-typerto alter content-type charset - deps: connect@2.21.0
- deprecate
connect(middleware)-- useapp.use(middleware)instead - deprecate
connect.createServer()-- useconnect()instead - fix
res.setHeader()patch to work with with get -> append -> set pattern - deps: compression@~1.0.8
- deps: errorhandler@~1.1.1
- deps: express-session@~1.5.0
- deps: serve-index@~1.1.3
- deprecate
3.11.0 / 2014-06-19
- deprecate things with
depdmodule - deps: buffer-crc32@0.2.3
- deps: connect@2.20.2
- deprecate
verifyoption tojson-- usebody-parsernpm module instead - deprecate
verifyoption tourlencoded-- usebody-parsernpm module instead - deprecate things with
depdmodule - use
finalhandlerfor final response handling - use
media-typerto parsecontent-typefor charset - deps: body-parser@1.4.3
- deps: connect-timeout@1.1.1
- deps: cookie-parser@1.3.1
- deps: csurf@1.2.2
- deps: errorhandler@1.1.0
- deps: express-session@1.4.0
- deps: multiparty@3.2.9
- deps: serve-index@1.1.2
- deps: type-is@1.3.1
- deps: vhost@2.0.0
- deprecate
3.10.5 / 2014-06-11
- deps: connect@2.19.6
- deps: body-parser@1.3.1
- deps: compression@1.0.7
- deps: debug@1.0.2
- deps: serve-index@1.1.1
- deps: serve-static@1.2.3
- deps: debug@1.0.2
- deps: send@0.4.3
- Do not throw uncatchable error on file open race condition
- Use
escape-htmlfor HTML escaping - deps: debug@1.0.2
- deps: finished@1.2.2
- deps: fresh@0.2.2
3.10.4 / 2014-06-09
- deps: connect@2.19.5
- fix "event emitter leak" warnings
- deps: csurf@1.2.1
- deps: debug@1.0.1
- deps: serve-static@1.2.2
- deps: type-is@1.2.1
- deps: debug@1.0.1
- deps: send@0.4.2
- fix "event emitter leak" warnings
- deps: finished@1.2.1
- deps: debug@1.0.1
3.10.3 / 2014-06-05
- use
varymodule forres.vary - deps: connect@2.19.4
- deps: errorhandler@1.0.2
- deps: method-override@2.0.2
- deps: serve-favicon@2.0.1
- deps: debug@1.0.0
3.10.2 / 2014-06-03
- deps: connect@2.19.3
- deps: compression@1.0.6
3.10.1 / 2014-06-03
- deps: connect@2.19.2
- deps: compression@1.0.4
- deps: proxy-addr@1.0.1
3.10.0 / 2014-06-02
- deps: connect@2.19.1
- deprecate
methodOverride()-- usemethod-overridenpm module instead - deps: body-parser@1.3.0
- deps: method-override@2.0.1
- deps: multiparty@3.2.8
- deps: response-time@2.0.0
- deps: serve-static@1.2.1
- deprecate
- deps: methods@1.0.1
- deps: send@0.4.1
- Send
max-ageinCache-Controlin correct format
- Send
3.9.0 / 2014-05-30
- custom etag control with
app.set('etag', val)app.set('etag', function(body, encoding){ return '"etag"' })custom etag generationapp.set('etag', 'weak')weak tagapp.set('etag', 'strong')strong etagapp.set('etag', false)turn offapp.set('etag', true)standard etag
- Include ETag in HEAD requests
- mark
res.sendETag as weak and reduce collisions - update connect to 2.18.0
- deps: compression@1.0.3
- deps: serve-index@1.1.0
- deps: serve-static@1.2.0
- update send to 0.4.0
- Calculate ETag with md5 for reduced collisions
- Ignore stream errors after request ends
- deps: debug@0.8.1
3.8.1 / 2014-05-27
- update connect to 2.17.3
- deps: body-parser@1.2.2
- deps: express-session@1.2.1
- deps: method-override@1.0.2
3.8.0 / 2014-05-21
- keep previous
Content-Typeforres.jsonp - set proper
charsetinContent-Typeforres.send - update connect to 2.17.1
- fix
res.charsetappending charset whencontent-typehas one - deps: express-session@1.2.0
- deps: morgan@1.1.1
- deps: serve-index@1.0.3
- fix
3.7.0 / 2014-05-18
- proper proxy trust with
app.set('trust proxy', trust)app.set('trust proxy', 1)trust first hopapp.set('trust proxy', 'loopback')trust loopback addressesapp.set('trust proxy', '10.0.0.1')trust single IPapp.set('trust proxy', '10.0.0.1/16')trust subnetapp.set('trust proxy', '10.0.0.1, 10.0.0.2')trust listapp.set('trust proxy', false)turn offapp.set('trust proxy', true)trust everything
- update connect to 2.16.2
- deprecate
res.headerSent-- useres.headersSent - deprecate
res.on("header")-- use on-headers module instead - fix edge-case in
res.appendHeaderthat would append in wrong order - json: use body-parser
- urlencoded: use body-parser
- dep: bytes@1.0.0
- dep: cookie-parser@1.1.0
- dep: csurf@1.2.0
- dep: express-session@1.1.0
- dep: method-override@1.0.1
- deprecate
3.6.0 / 2014-05-09
- deprecate
app.del()-- useapp.delete()instead - deprecate
res.json(obj, status)-- useres.json(status, obj)instead- the edge-case
res.json(status, num)requiresres.status(status).json(num)
- the edge-case
- deprecate
res.jsonp(obj, status)-- useres.jsonp(status, obj)instead- the edge-case
res.jsonp(status, num)requiresres.status(status).jsonp(num)
- the edge-case
- support PURGE method
- add
app.purge - add
router.purge - include PURGE in
app.all
- add
- update connect to 2.15.0
- Add
res.appendHeader - Call error stack even when response has been sent
- Patch
res.headerSentto return Boolean - Patch
res.headersSentfor node.js 0.8 - Prevent default 404 handler after response sent
- dep: compression@1.0.2
- dep: connect-timeout@1.1.0
- dep: debug@^0.8.0
- dep: errorhandler@1.0.1
- dep: express-session@1.0.4
- dep: morgan@1.0.1
- dep: serve-favicon@2.0.0
- dep: serve-index@1.0.2
- Add
- update debug to 0.8.0
- add
enable()method - change from stderr to stdout
- add
- update methods to 1.0.0
- add PURGE
- update mkdirp to 0.5.0
3.5.3 / 2014-05-08
- fix
req.hostfor IPv6 literals - fix
res.jsonperror if callback param is object
3.5.2 / 2014-04-24
- update connect to 2.14.5
- update cookie to 0.1.2
- update mkdirp to 0.4.0
- update send to 0.3.0
3.5.1 / 2014-03-25
- pin less-middleware in generated app
3.5.0 / 2014-03-06
- bump deps
3.4.8 / 2014-01-13
- prevent incorrect automatic OPTIONS responses #1868 @dpatti
- update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi
- throw 400 in case of malformed paths @rlidwka
3.4.7 / 2013-12-10
- update connect
3.4.6 / 2013-12-01
- update connect (raw-body)
3.4.5 / 2013-11-27
- update connect
- res.location: remove leading ./ #1802 @kapouer
- res.redirect: fix `res.redirect('toString') #1829 @michaelficarra
- res.send: always send ETag when content-length > 0
- router: add Router.all() method
3.4.4 / 2013-10-29
- update connect
- update supertest
- update methods
- express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04
3.4.3 / 2013-10-23
- update connect
3.4.2 / 2013-10-18
- update connect
- downgrade commander
3.4.1 / 2013-10-15
- update connect
- update commander
- jsonp: check if callback is a function
- router: wrap encodeURIComponent in a try/catch #1735 (@lxe)
- res.format: now includes charset @1747 (@sorribas)
- res.links: allow multiple calls @1746 (@sorribas)
3.4.0 / 2013-09-07
- add res.vary(). Closes #1682
- update connect
3.3.8 / 2013-09-02
- update connect
3.3.7 / 2013-08-28
- update connect
3.3.6 / 2013-08-27
- Revert "remove charset from json responses. Closes #1631" (causes issues in some clients)
- add: req.accepts take an argument list
3.3.4 / 2013-07-08
- update send and connect
3.3.3 / 2013-07-04
- update connect
3.3.2 / 2013-07-03
- update connect
- update send
- remove .version export
3.3.1 / 2013-06-27
- update connect
3.3.0 / 2013-06-26
- update connect
- add support for multiple X-Forwarded-Proto values. Closes #1646
- change: remove charset from json responses. Closes #1631
- change: return actual booleans from req.accept* functions
- fix jsonp callback array throw
3.2.6 / 2013-06-02
- update connect
3.2.5 / 2013-05-21
- update connect
- update node-cookie
- add: throw a meaningful error when there is no default engine
- change generation of ETags with res.send() to GET requests only. Closes #1619
3.2.4 / 2013-05-09
- fix
req.subdomainswhen no Host is present - fix
req.hostwhen no Host is present, return undefined
3.2.3 / 2013-05-07
- update connect / qs
3.2.2 / 2013-05-03
- update qs
3.2.1 / 2013-04-29
- add app.VERB() paths array deprecation warning
- update connect
- update qs and remove all ~ semver crap
- fix: accept number as value of Signed Cookie
3.2.0 / 2013-04-15
- add "view" constructor setting to override view behaviour
- add req.acceptsEncoding(name)
- add req.acceptedEncodings
- revert cookie signature change causing session race conditions
- fix sorting of Accept values of the same quality
3.1.2 / 2013-04-12
- add support for custom Accept parameters
- update cookie-signature
3.1.1 / 2013-04-01
- add X-Forwarded-Host support to
req.host - fix relative redirects
- update mkdirp
- update buffer-crc32
- remove legacy app.configure() method from app template.
3.1.0 / 2013-01-25
- add support for leading "." in "view engine" setting
- add array support to
res.set() - add node 0.8.x to travis.yml
- add "subdomain offset" setting for tweaking
req.subdomains - add
res.location(url)implementingres.redirect()-like setting of Location - use app.get() for x-powered-by setting for inheritance
- fix colons in passwords for
req.auth
3.0.6 / 2013-01-04
- add http verb methods to Router
- update connect
- fix mangling of the
res.cookie()options object - fix jsonp whitespace escape. Closes #1132
3.0.5 / 2012-12-19
- add throwing when a non-function is passed to a route
- fix: explicitly remove Transfer-Encoding header from 204 and 304 responses
- revert "add 'etag' option"
3.0.4 / 2012-12-05
- add 'etag' option to disable
res.send()Etags - add escaping of urls in text/plain in
res.redirect()for old browsers interpreting as html - change crc32 module for a more liberal license
- update connect
3.0.3 / 2012-11-13
- update connect
- update cookie module
- fix cookie max-age
3.0.2 / 2012-11-08
- add OPTIONS to cors example. Closes #1398
- fix route chaining regression. Closes #1397
3.0.1 / 2012-11-01
- update connect
3.0.0 / 2012-10-23
- add
make clean - add "Basic" check to req.auth
- add
req.authtest coverage - add cb && cb(payload) to
res.jsonp(). Closes #1374 - add backwards compat for
res.redirect()status. Closes #1336 - add support for
res.json()to retain previously defined Content-Types. Closes #1349 - update connect
- change
res.redirect()to utilize a pathname-relative Location again. Closes #1382 - remove non-primitive string support for
res.send() - fix view-locals example. Closes #1370
- fix route-separation example
3.0.0rc5 / 2012-09-18
- update connect
- add redis search example
- add static-files example
- add "x-powered-by" setting (
app.disable('x-powered-by')) - add "application/octet-stream" redirect Accept test case. Closes #1317
3.0.0rc4 / 2012-08-30
- add
res.jsonp(). Closes #1307 - add "verbose errors" option to error-pages example
- add another route example to express(1) so people are not so confused
- add redis online user activity tracking example
- update connect dep
- fix etag quoting. Closes #1310
- fix error-pages 404 status
- fix jsonp callback char restrictions
- remove old OPTIONS default response
3.0.0rc3 / 2012-08-13
- update connect dep
- fix signed cookies to work with
connect.cookieParser()("s:" prefix was missing) [tnydwrds] - fix
res.render()clobbering of "locals"
3.0.0rc2 / 2012-08-03
- add CORS example
- update connect dep
- deprecate
.createServer()& remove old stale examples - fix: escape
res.redirect()link - fix vhost example
3.0.0rc1 / 2012-07-24
- add more examples to view-locals
- add scheme-relative redirects (
res.redirect("//foo.com")) support - update cookie dep
- update connect dep
- update send dep
- fix
express(1)-h flag, use -H for hogan. Closes #1245 - fix
res.sendfile()socket error handling regression
3.0.0beta7 / 2012-07-16
- update connect dep for
send()root normalization regression
3.0.0beta6 / 2012-07-13
- add
err.viewproperty for view errors. Closes #1226 - add "jsonp callback name" setting
- add support for "/foo/:bar*" non-greedy matches
- change
res.sendfile()to usesend()module - change
res.sendto use "response-send" module - remove
app.locals.useandres.locals.use, use regular middleware
3.0.0beta5 / 2012-07-03
- add "make check" support
- add route-map example
- add
res.json(obj, status)support back for BC - add "methods" dep, remove internal methods module
- update connect dep
- update auth example to utilize cores pbkdf2
- updated tests to use "supertest"
3.0.0beta4 / 2012-06-25
- Added
req.auth - Added
req.range(size) - Added
res.links(obj) - Added
res.send(body, status)support back for backwards compat - Added
.default()support tores.format() - Added 2xx / 304 check to
req.fresh - Revert "Added + support to the router"
- Fixed
res.send()freshness check, respect res.statusCode
3.0.0beta3 / 2012-06-15
- Added hogan
--hjsto express(1) [nullfirm] - Added another example to content-negotiation
- Added
freshdep - Changed:
res.send()always checks freshness - Fixed: expose connects mime module. Closes #1165
3.0.0beta2 / 2012-06-06
- Added
+support to the router - Added
req.host - Changed
req.param()to check route first - Update connect dep
3.0.0beta1 / 2012-06-01
- Added
res.format()callback to override default 406 behaviour - Fixed
res.redirect()406. Closes #1154
3.0.0alpha5 / 2012-05-30
- Added
req.ip - Added
{ signed: true }option tores.cookie() - Removed
res.signedCookie() - Changed: dont reverse
req.ips - Fixed "trust proxy" setting check for
req.ips
3.0.0alpha4 / 2012-05-09
- Added: allow
[]in jsonp callback. Closes #1128 - Added
PORTenv var support in generated template. Closes #1118 [benatkin] - Updated: connect 2.2.2
3.0.0alpha3 / 2012-05-04
- Added public
app.routes. Closes #887 - Added view-locals example
- Added mvc example
- Added
res.locals.use(). Closes #1120 - Added conditional-GET support to
res.send() - Added: coerce
res.set()values to strings - Changed: moved
static()in generated apps below router - Changed:
res.send()only set ETag when not previously set - Changed connect 2.2.1 dep
- Changed:
make testnow runs unit / acceptance tests - Fixed req/res proto inheritance
3.0.0alpha2 / 2012-04-26
- Added
make benchmarkback - Added
res.send()support forStringobjects - Added client-side data exposing example
- Added
res.header()andreq.header()aliases for BC - Added
express.createServer()for BC - Perf: memoize parsed urls
- Perf: connect 2.2.0 dep
- Changed: make
expressInit()middleware self-aware - Fixed: use app.get() for all core settings
- Fixed redis session example
- Fixed session example. Closes #1105
- Fixed generated express dep. Closes #1078
3.0.0alpha1 / 2012-04-15
- Added
app.locals.use(callback) - Added
app.localsobject - Added
app.locals(obj) - Added
res.localsobject - Added
res.locals(obj) - Added
res.format()for content-negotiation - Added
app.engine() - Added
res.cookie()JSON cookie support - Added "trust proxy" setting
- Added
req.subdomains - Added
req.protocol - Added
req.secure - Added
req.path - Added
req.ips - Added
req.fresh - Added
req.stale - Added comma-delimited / array support for
req.accepts() - Added debug instrumentation
- Added
res.set(obj) - Added
res.set(field, value) - Added
res.get(field) - Added
app.get(setting). Closes #842 - Added
req.acceptsLanguage() - Added
req.acceptsCharset() - Added
req.accepted - Added
req.acceptedLanguages - Added
req.acceptedCharsets - Added "json replacer" setting
- Added "json spaces" setting
- Added X-Forwarded-Proto support to
res.redirect(). Closes #92 - Added
--lesssupport to express(1) - Added
express.responseprototype - Added
express.requestprototype - Added
express.applicationprototype - Added
app.path() - Added
app.render() - Added
res.type()to replaceres.contentType() - Changed:
res.redirect()to add relative support - Changed: enable "jsonp callback" by default
- Changed: renamed "case sensitive routes" to "case sensitive routing"
- Rewrite of all tests with mocha
- Removed "root" setting
- Removed
res.redirect('home')support - Removed
req.notify() - Removed
app.register() - Removed
app.redirect() - Removed
app.is() - Removed
app.helpers() - Removed
app.dynamicHelpers() - Fixed
res.sendfile()with non-GET. Closes #723 - Fixed express(1) public dir for windows. Closes #866
2.5.9/ 2012-04-02
- Added support for PURGE request method [pbuyle]
- Fixed
express(1)generated appapp.address()beforelistening[mmalecki]
2.5.8 / 2012-02-08
- Update mkdirp dep. Closes #991
2.5.7 / 2012-02-06
- Fixed
app.allduplicate DELETE requests [mscdex]
2.5.6 / 2012-01-13
- Updated hamljs dev dep. Closes #953
2.5.5 / 2012-01-08
- Fixed: set
filenameon cached templates [matthewleon]
2.5.4 / 2012-01-02
- Fixed
express(1)eol on 0.4.x. Closes #947
2.5.3 / 2011-12-30
- Fixed
req.is()when a charset is present
2.5.2 / 2011-12-10
- Fixed: express(1) LF -> CRLF for windows
2.5.1 / 2011-11-17
- Changed: updated connect to 1.8.x
- Removed sass.js support from express(1)
2.5.0 / 2011-10-24
- Added ./routes dir for generated app by default
- Added npm install reminder to express(1) app gen
- Added 0.5.x support
- Removed
make test-covsince it wont work with node 0.5.x - Fixed express(1) public dir for windows. Closes #866
2.4.7 / 2011-10-05
- Added mkdirp to express(1). Closes #795
- Added simple json-config example
- Added shorthand for the parsed request's pathname via
req.path - Changed connect dep to 1.7.x to fix npm issue...
- Fixed
res.redirect()HEAD support. [reported by xerox] - Fixed
req.flash(), only escape args - Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
2.4.6 / 2011-08-22
- Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
2.4.5 / 2011-08-19
- Added support for routes to handle errors. Closes #809
- Added
app.routes.all(). Closes #803 - Added "basepath" setting to work in conjunction with reverse proxies etc.
- Refactored
Routeto use a single array of callbacks - Added support for multiple callbacks for
app.param(). Closes #801 Closes #805 - Changed: removed .call(self) for route callbacks
- Dependency:
qs >= 0.3.1 - Fixed
res.redirect()on windows due tojoin()usage. Closes #808
2.4.4 / 2011-08-05
- Fixed
res.header()intention of a set, even whenundefined - Fixed
*, value no longer required - Fixed
res.send(204)support. Closes #771
2.4.3 / 2011-07-14
- Added docs for
statusoption special-case. Closes #739 - Fixed
options.filename, exposing the view path to template engines
2.4.2. / 2011-07-06
- Revert "removed jsonp stripping" for XSS
2.4.1 / 2011-07-06
- Added
res.json()JSONP support. Closes #737 - Added extending-templates example. Closes #730
- Added "strict routing" setting for trailing slashes
- Added support for multiple envs in
app.configure()calls. Closes #735 - Changed:
res.send()usingres.json() - Changed: when cookie
path === nulldon't default it - Changed; default cookie path to "home" setting. Closes #731
- Removed pids/logs creation from express(1)
2.4.0 / 2011-06-28
- Added chainable
res.status(code) - Added
res.json(), an explicit version ofres.send(obj) - Added simple web-service example
2.3.12 / 2011-06-22
- #express is now on freenode! come join!
- Added
req.get(field, param) - Added links to Japanese documentation, thanks @hideyukisaito!
- Added; the
express(1)generated app outputs the env - Added
content-negotiationexample - Dependency: connect >= 1.5.1 < 2.0.0
- Fixed view layout bug. Closes #720
- Fixed; ignore body on 304. Closes #701
2.3.11 / 2011-06-04
- Added
npm test - Removed generation of dummy test file from
express(1) - Fixed;
express(1)adds express as a dep - Fixed; prune on
prepublish
2.3.10 / 2011-05-27
- Added
req.route, exposing the current route - Added package.json generation support to
express(1) - Fixed call to
app.param()function for optional params. Closes #682
2.3.9 / 2011-05-25
- Fixed bug-ish with
../' inres.partial()` calls
2.3.8 / 2011-05-24
- Fixed
app.options()
2.3.7 / 2011-05-23
- Added route
Collection, ex:app.get('/user/:id').remove(); - Added support for
app.param(fn)to define param logic - Removed
app.param()support for callback with return value - Removed module.parent check from express(1) generated app. Closes #670
- Refactored router. Closes #639
2.3.6 / 2011-05-20
- Changed; using devDependencies instead of git submodules
- Fixed redis session example
- Fixed markdown example
- Fixed view caching, should not be enabled in development
2.3.5 / 2011-05-20
- Added export
.viewas alias for.View
2.3.4 / 2011-05-08
- Added
./examples/say - Fixed
res.sendfile()bug preventing the transfer of files with spaces
2.3.3 / 2011-05-03
- Added "case sensitive routes" option.
- Changed; split methods supported per rfc [slaskis]
- Fixed route-specific middleware when using the same callback function several times
2.3.2 / 2011-04-27
- Fixed view hints
2.3.1 / 2011-04-26
- Added
app.match()asapp.match.all() - Added
app.lookup()asapp.lookup.all() - Added
app.remove()forapp.remove.all() - Added
app.remove.VERB() - Fixed template caching collision issue. Closes #644
- Moved router over from connect and started refactor
2.3.0 / 2011-04-25
- Added options support to
res.clearCookie() - Added
res.helpers()as alias ofres.locals() - Added; json defaults to UTF-8 with
res.send(). Closes #632. [Daniel * Dependencyconnect >= 1.4.0 - Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
- Renamed "cache views" to "view cache". Closes #628
- Fixed caching of views when using several apps. Closes #637
- Fixed gotcha invoking
app.param()callbacks once per route middleware. Closes #638 - Fixed partial lookup precedence. Closes #631 Shaw]
2.2.2 / 2011-04-12
- Added second callback support for
res.download()connection errors - Fixed
filenameoption passing to template engine
2.2.1 / 2011-04-04
-
Added
layout(path)helper to change the layout within a view. Closes #610 -
Fixed
partial()collection object support. Previously only anything with.lengthwould work. When.lengthis present one must still be aware of holes, however now{ collection: {foo: 'bar'}}is valid, exposeskeyInCollectionandkeysInCollection. -
Performance improved with better view caching
-
Removed
requestandresponselocals -
Changed; errorHandler page title is now
Expressinstead ofConnect
2.2.0 / 2011-03-30
- Added
app.lookup.VERB(), exapp.lookup.put('/user/:id'). Closes #606 - Added
app.match.VERB(), exapp.match.put('/user/12'). Closes #606 - Added
app.VERB(path)as alias ofapp.lookup.VERB(). - Dependency
connect >= 1.2.0
2.1.1 / 2011-03-29
- Added; expose
err.viewobject when failing to locate a view - Fixed
res.partial()callnext(err)when no callback is given [reported by aheckmann] - Fixed;
res.send(undefined)responds with 204 [aheckmann]
2.1.0 / 2011-03-24
- Added
<root>/_?<name>partial lookup support. Closes #447 - Added
request,response, andapplocal variables - Added
settingslocal variable, containing the app's settings - Added
req.flash()exception ifreq.sessionis not available - Added
res.send(bool)support (json response) - Fixed stylus example for latest version
- Fixed; wrap try/catch around
res.render()
2.0.0 / 2011-03-17
- Fixed up index view path alternative.
- Changed;
res.locals()without object returns the locals
2.0.0rc3 / 2011-03-17
- Added
res.locals(obj)to complimentres.local(key, val) - Added
res.partial()callback support - Fixed recursive error reporting issue in
res.render()
2.0.0rc2 / 2011-03-17
- Changed;
partial()"locals" are now optional - Fixed
SlowBuffersupport. Closes #584 [reported by tyrda01] - Fixed .filename view engine option [reported by drudge]
- Fixed blog example
- Fixed
{req,res}.appreference when mounting [Ben Weaver]
2.0.0rc / 2011-03-14
- Fixed; expose
HTTPSServerconstructor - Fixed express(1) default test charset. Closes #579 [reported by secoif]
- Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
2.0.0beta3 / 2011-03-09
- Added support for
res.contentType()literal The originalres.contentType('.json'),res.contentType('application/json'), andres.contentType('json')will work now. - Added
res.render()status option support back - Added charset option for
res.render() - Added
.charsetsupport (via connect 1.0.4) - Added view resolution hints when in development and a lookup fails
- Added layout lookup support relative to the page view.
For example while rendering
./views/user/index.jadeif you create./views/user/layout.jadeit will be used in favour of the root layout. - Fixed
res.redirect(). RFC states absolute url [reported by unlink] - Fixed; default
res.send()string charset to utf8 - Removed
Partialconstructor (not currently used)
2.0.0beta2 / 2011-03-07
- Added res.render()
.localssupport back to aid in migration process - Fixed flash example
2.0.0beta / 2011-03-03
- Added HTTPS support
- Added
res.cookie()maxAge support - Added
req.header()Referrer / Referer special-case, either works - Added mount support for
res.redirect(), now respects the mount-point - Added
union()util, taking place ofmerge(clone())combo - Added stylus support to express(1) generated app
- Added secret to session middleware used in examples and generated app
- Added
res.local(name, val)for progressive view locals - Added default param support to
req.param(name, default) - Added
app.disabled()andapp.enabled() - Added
app.register()support for omitting leading ".", either works - Added
res.partial(), using the same interface aspartial()within a view. Closes #539 - Added
app.param()to map route params to async/sync logic - Added; aliased
app.helpers()asapp.locals(). Closes #481 - Added extname with no leading "." support to
res.contentType() - Added
cache viewssetting, defaulting to enabled in "production" env - Added index file partial resolution, eg: partial('user') may try views/user/index.jade.
- Added
req.accepts()support for extensions - Changed;
res.download()andres.sendfile()now utilize Connect's static file serverconnect.static.send(). - Changed; replaced
connect.utils.mime()with npm mime module - Changed; allow
req.queryto be pre-defined (via middleware or other parent - Changed view partial resolution, now relative to parent view
- Changed view engine signature. no longer
engine.render(str, options, callback), nowengine.compile(str, options) -> Function, the returned function acceptsfn(locals). - Fixed
req.param()bug returning Array.prototype methods. Closes #552 - Fixed; using
Stream#pipe()instead ofsys.pump()inres.sendfile() - Fixed; using qs module instead of querystring
- Fixed; strip unsafe chars from jsonp callbacks
- Removed "stream threshold" setting
1.0.8 / 2011-03-01
- Allow
req.queryto be pre-defined (via middleware or other parent app) - "connect": ">= 0.5.0 < 1.0.0". Closes #547
- Removed the long deprecated EXPRESS_ENV support
1.0.7 / 2011-02-07
- Fixed
render()setting inheritance. Mounted apps would not inherit "view engine"
1.0.6 / 2011-02-07
- Fixed
view enginesetting bug when period is in dirname
1.0.5 / 2011-02-05
- Added secret to generated app
session()call
1.0.4 / 2011-02-05
- Added
qsdependency to package.json - Fixed namespaced
require()s for latest connect support
1.0.3 / 2011-01-13
- Remove unsafe characters from JSONP callback names [Ryan Grove]
1.0.2 / 2011-01-10
- Removed nested require, using
connect.router
1.0.1 / 2010-12-29
- Fixed for middleware stacked via
createServer()previously thefoomiddleware passed tocreateServer(foo)would not have access to Express methods such asres.send()or props likereq.queryetc.
1.0.0 / 2010-11-16
- Added; deduce partial object names from the last segment.
For example by default
partial('forum/post', postObject)will give you the post object, providing a meaningful default. - Added http status code string representation to
res.redirect()body - Added;
res.redirect()supporting text/plain and text/html via Accept. - Added
req.is()to aid in content negotiation - Added partial local inheritance [suggested by masylum]. Closes #102 providing access to parent template locals.
- Added -s, --session[s] flag to express(1) to add session related middleware
- Added --template flag to express(1) to specify the template engine to use.
- Added --css flag to express(1) to specify the stylesheet engine to use (or just plain css by default).
- Added
app.all()support [thanks aheckmann] - Added partial direct object support.
You may now
partial('user', user)providing the "user" local, vs previouslypartial('user', { object: user }). - Added route-separation example since many people question ways to do this with CommonJS modules. Also view the blog example for an alternative.
- Performance; caching view path derived partial object names
- Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
- Fixed jsonp support; text/javascript as per mailinglist discussion
1.0.0rc4 / 2010-10-14
- Added NODE_ENV support, EXPRESS_ENV is deprecated and will be removed in 1.0.0
- Added route-middleware support (very helpful, see the docs)
- Added jsonp callback setting to enable/disable jsonp autowrapping [Dav Glass]
- Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
- Added
partial()support for array-like collections. Closes #434 - Added support for swappable querystring parsers
- Added session usage docs. Closes #443
- Added dynamic helper caching. Closes #439 [suggested by maritz]
- Added authentication example
- Added basic Range support to
res.sendfile()(andres.download()etc) - Changed;
express(1)generated app using 2 spaces instead of 4 - Default env to "development" again [aheckmann]
- Removed context option is no more, use "scope"
- Fixed; exposing ./support libs to examples so they can run without installs
- Fixed mvc example
1.0.0rc3 / 2010-09-20
- Added confirmation for
express(1)app generation. Closes #391 - Added extending of flash formatters via
app.flashFormatters - Added flash formatter support. Closes #411
- Added streaming support to
res.sendfile()usingsys.pump()when >= "stream threshold" - Added stream threshold setting for
res.sendfile() - Added
res.send()HEAD support - Added
res.clearCookie() - Added
res.cookie() - Added
res.render()headers option - Added
res.redirect()response bodies - Added
res.render()status option support. Closes #425 [thanks aheckmann] - Fixed
res.sendfile()responding with 403 on malicious path - Fixed
res.download()bug; when an error occurs remove Content-Disposition - Fixed; mounted apps settings now inherit from parent app [aheckmann]
- Fixed; stripping Content-Length / Content-Type when 204
- Fixed
res.send()204. Closes #419 - Fixed multiple Set-Cookie headers via
res.header(). Closes #402 - Fixed bug messing with error handlers when
listenFD()is called instead oflisten(). [thanks guillermo]
1.0.0rc2 / 2010-08-17
- Added
app.register()for template engine mapping. Closes #390 - Added
res.render()callback support as second argument (no options) - Added callback support to
res.download() - Added callback support for
res.sendfile() - Added support for middleware access via
express.middlewareName()vsconnect.middlewareName() - Added "partials" setting to docs
- Added default expresso tests to
express(1)generated app. Closes #384 - Fixed
res.sendfile()error handling, defer vianext() - Fixed
res.render()callback when a layout is used [thanks guillermo] - Fixed;
make installcreating ~/.node_libraries when not present - Fixed issue preventing error handlers from being defined anywhere. Closes #387
1.0.0rc / 2010-07-28
-
Added mounted hook. Closes #369
-
Added connect dependency to package.json
-
Removed "reload views" setting and support code development env never caches, production always caches.
-
Removed param in route callbacks, signature is now simply (req, res, next), previously (req, res, params, next). Use req.params for path captures, req.query for GET params.
-
Fixed "home" setting
-
Fixed middleware/router precedence issue. Closes #366
-
Fixed; configure() callbacks called immediately. Closes #368
1.0.0beta2 / 2010-07-23
- Added more examples
- Added; exporting
Serverconstructor - Added
Server#helpers()for view locals - Added
Server#dynamicHelpers()for dynamic view locals. Closes #349 - Added support for absolute view paths
- Added; home setting defaults to
Server#routefor mounted apps. Closes #363 - Added Guillermo Rauch to the contributor list
- Added support for "as" for non-collection partials. Closes #341
- Fixed install.sh, ensuring ~/.node_libraries exists. Closes #362 [thanks jf]
- Fixed
res.render()exceptions, now passed tonext()when no callback is given [thanks guillermo] - Fixed instanceof
Arraychecks, nowArray.isArray() - Fixed express(1) expansion of public dirs. Closes #348
- Fixed middleware precedence. Closes #345
- Fixed view watcher, now async [thanks aheckmann]
1.0.0beta / 2010-07-15
- Re-write
- much faster
- much lighter
- Check ExpressJS.com for migration guide and updated docs
0.14.0 / 2010-06-15
- Utilize relative requires
- Added Static bufferSize option [aheckmann]
- Fixed caching of view and partial subdirectories [aheckmann]
- Fixed mime.type() comments now that ".ext" is not supported
- Updated haml submodule
- Updated class submodule
- Removed bin/express
0.13.0 / 2010-06-01
- Added node v0.1.97 compatibility
- Added support for deleting cookies via Request#cookie('key', null)
- Updated haml submodule
- Fixed not-found page, now using using charset utf-8
- Fixed show-exceptions page, now using using charset utf-8
- Fixed view support due to fs.readFile Buffers
- Changed; mime.type() no longer accepts ".type" due to node extname() changes
0.12.0 / 2010-05-22
- Added node v0.1.96 compatibility
- Added view
helpersexport which act as additional local variables - Updated haml submodule
- Changed ETag; removed inode, modified time only
- Fixed LF to CRLF for setting multiple cookies
- Fixed cookie compilation; values are now urlencoded
- Fixed cookies parsing; accepts quoted values and url escaped cookies
0.11.0 / 2010-05-06
- Added support for layouts using different engines
- this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
- this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
- this.render('page.html.haml', { layout: false }) // no layout
- Updated ext submodule
- Updated haml submodule
- Fixed EJS partial support by passing along the context. Issue #307
0.10.1 / 2010-05-03
- Fixed binary uploads.
0.10.0 / 2010-04-30
- Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s encoding is set to 'utf8' or 'utf-8'.
- Added "encoding" option to Request#render(). Closes #299
- Added "dump exceptions" setting, which is enabled by default.
- Added simple ejs template engine support
- Added error response support for text/plain, application/json. Closes #297
- Added callback function param to Request#error()
- Added Request#sendHead()
- Added Request#stream()
- Added support for Request#respond(304, null) for empty response bodies
- Added ETag support to Request#sendfile()
- Added options to Request#sendfile(), passed to fs.createReadStream()
- Added filename arg to Request#download()
- Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
- Performance enhanced by preventing several calls to toLowerCase() in Router#match()
- Changed; Request#sendfile() now streams
- Changed; Renamed Request#halt() to Request#respond(). Closes #289
- Changed; Using sys.inspect() instead of JSON.encode() for error output
- Changed; run() returns the http.Server instance. Closes #298
- Changed; Defaulting Server#host to null (INADDR_ANY)
- Changed; Logger "common" format scale of 0.4f
- Removed Logger "request" format
- Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
- Fixed several issues with http client
- Fixed Logger Content-Length output
- Fixed bug preventing Opera from retaining the generated session id. Closes #292
0.9.0 / 2010-04-14
- Added DSL level error() route support
- Added DSL level notFound() route support
- Added Request#error()
- Added Request#notFound()
- Added Request#render() callback function. Closes #258
- Added "max upload size" setting
- Added "magic" variables to collection partials (__index__, __length__, __isFirst__, __isLast__). Closes #254
- Added haml.js submodule; removed haml-js
- Added callback function support to Request#halt() as 3rd/4th arg
- Added preprocessing of route param wildcards using param(). Closes #251
- Added view partial support (with collections etc)
- Fixed bug preventing falsey params (such as ?page=0). Closes #286
- Fixed setting of multiple cookies. Closes #199
- Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
- Changed; session cookie is now httpOnly
- Changed; Request is no longer global
- Changed; Event is no longer global
- Changed; "sys" module is no longer global
- Changed; moved Request#download to Static plugin where it belongs
- Changed; Request instance created before body parsing. Closes #262
- Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
- Changed; Pre-caching view partials in memory when "cache view partials" is enabled
- Updated support to node --version 0.1.90
- Updated dependencies
- Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
- Removed utils.mixin(); use Object#mergeDeep()
0.8.0 / 2010-03-19
- Added coffeescript example app. Closes #242
- Changed; cache api now async friendly. Closes #240
- Removed deprecated 'express/static' support. Use 'express/plugins/static'
0.7.6 / 2010-03-19
- Added Request#isXHR. Closes #229
- Added
make install(for the executable) - Added
expressexecutable for setting up simple app templates - Added "GET /public/*" to Static plugin, defaulting to /public
- Added Static plugin
- Fixed; Request#render() only calls cache.get() once
- Fixed; Namespacing View caches with "view:"
- Fixed; Namespacing Static caches with "static:"
- Fixed; Both example apps now use the Static plugin
- Fixed set("views"). Closes #239
- Fixed missing space for combined log format
- Deprecated Request#sendfile() and 'express/static'
- Removed Server#running
0.7.5 / 2010-03-16
- Added Request#flash() support without args, now returns all flashes
- Updated ext submodule
0.7.4 / 2010-03-16
- Fixed session reaper
- Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
0.7.3 / 2010-03-16
- Added package.json
- Fixed requiring of haml / sass due to kiwi removal
0.7.2 / 2010-03-16
- Fixed GIT submodules (HAH!)
0.7.1 / 2010-03-16
- Changed; Express now using submodules again until a PM is adopted
- Changed; chat example using millisecond conversions from ext
0.7.0 / 2010-03-15
- Added Request#pass() support (finds the next matching route, or the given path)
- Added Logger plugin (default "common" format replaces CommonLogger)
- Removed Profiler plugin
- Removed CommonLogger plugin
0.6.0 / 2010-03-11
-
Added seed.yml for kiwi package management support
-
Added HTTP client query string support when method is GET. Closes #205
-
Added support for arbitrary view engines. For example "foo.engine.html" will now require('engine'), the exports from this module are cached after the first require().
-
Added async plugin support
-
Removed usage of RESTful route funcs as http client get() etc, use http.get() and friends
-
Removed custom exceptions
0.5.0 / 2010-03-10
- Added ext dependency (library of js extensions)
- Removed extname() / basename() utils. Use path module
- Removed toArray() util. Use arguments.values
- Removed escapeRegexp() util. Use RegExp.escape()
- Removed process.mixin() dependency. Use utils.mixin()
- Removed Collection
- Removed ElementCollection
- Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;)
0.4.0 / 2010-02-11
- Added flash() example to sample upload app
- Added high level restful http client module (express/http)
- Changed; RESTful route functions double as HTTP clients. Closes #69
- Changed; throwing error when routes are added at runtime
- Changed; defaulting render() context to the current Request. Closes #197
- Updated haml submodule
0.3.0 / 2010-02-11
- Updated haml / sass submodules. Closes #200
- Added flash message support. Closes #64
- Added accepts() now allows multiple args. fixes #117
- Added support for plugins to halt. Closes #189
- Added alternate layout support. Closes #119
- Removed Route#run(). Closes #188
- Fixed broken specs due to use(Cookie) missing
0.2.1 / 2010-02-05
- Added "plot" format option for Profiler (for gnuplot processing)
- Added request number to Profiler plugin
- Fixed binary encoding for multipart file uploads, was previously defaulting to UTF8
- Fixed issue with routes not firing when not files are present. Closes #184
- Fixed process.Promise -> events.Promise
0.2.0 / 2010-02-03
- Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
- Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
- Added expiration support to cache api with reaper. Closes #133
- Added cache Store.Memory#reap()
- Added Cache; cache api now uses first class Cache instances
- Added abstract session Store. Closes #172
- Changed; cache Memory.Store#get() utilizing Collection
- Renamed MemoryStore -> Store.Memory
- Fixed use() of the same plugin several time will always use latest options. Closes #176
0.1.0 / 2010-02-03
- Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
- Updated node support to 0.1.27 Closes #169
- Updated dirname(__filename) -> __dirname
- Updated libxmljs support to v0.2.0
- Added session support with memory store / reaping
- Added quick uid() helper
- Added multi-part upload support
- Added Sass.js support / submodule
- Added production env caching view contents and static files
- Added static file caching. Closes #136
- Added cache plugin with memory stores
- Added support to StaticFile so that it works with non-textual files.
- Removed dirname() helper
- Removed several globals (now their modules must be required)
0.0.2 / 2010-01-10
- Added view benchmarks; currently haml vs ejs
- Added Request#attachment() specs. Closes #116
- Added use of node's parseQuery() util. Closes #123
- Added
make initfor submodules - Updated Haml
- Updated sample chat app to show messages on load
- Updated libxmljs parseString -> parseHtmlString
- Fixed
make initto work with older versions of git - Fixed specs can now run independent specs for those who can't build deps. Closes #127
- Fixed issues introduced by the node url module changes. Closes 126.
- Fixed two assertions failing due to Collection#keys() returning strings
- Fixed faulty Collection#toArray() spec due to keys() returning strings
- Fixed
make testnow builds libxmljs.node before testing
0.0.1 / 2010-01-03
- Initial release