UNPKG

62.9 kBMarkdownView Raw
13.20.2 / 2015-03-16
2===================
3
4 * deps: connect@2.29.1
5 - deps: body-parser@~1.12.2
6 - deps: compression@~1.4.3
7 - deps: connect-timeout@~1.6.1
8 - deps: debug@~2.1.3
9 - deps: errorhandler@~1.3.5
10 - deps: express-session@~1.10.4
11 - deps: finalhandler@0.3.4
12 - deps: method-override@~2.3.2
13 - deps: morgan@~1.5.2
14 - deps: qs@2.4.1
15 - deps: serve-index@~1.6.3
16 - deps: serve-static@~1.9.2
17 - deps: type-is@~1.6.1
18 * deps: debug@~2.1.3
19 - Fix high intensity foreground color for bold
20 - deps: ms@0.7.0
21 * deps: merge-descriptors@1.0.0
22 * deps: proxy-addr@~1.0.7
23 - deps: ipaddr.js@0.1.9
24 * deps: send@0.12.2
25 - Throw errors early for invalid `extensions` or `index` options
26 - deps: debug@~2.1.3
27
283.20.1 / 2015-02-28
29===================
30
31 * Fix `req.host` when using "trust proxy" hops count
32 * Fix `req.protocol`/`req.secure` when using "trust proxy" hops count
33
343.20.0 / 2015-02-18
35===================
36
37 * Fix `"trust proxy"` setting to inherit when app is mounted
38 * Generate `ETag`s for all request responses
39 - No longer restricted to only responses for `GET` and `HEAD` requests
40 * Use `content-type` to parse `Content-Type` headers
41 * deps: connect@2.29.0
42 - Use `content-type` to parse `Content-Type` headers
43 - deps: body-parser@~1.12.0
44 - deps: compression@~1.4.1
45 - deps: connect-timeout@~1.6.0
46 - deps: cookie-parser@~1.3.4
47 - deps: cookie-signature@1.0.6
48 - deps: csurf@~1.7.0
49 - deps: errorhandler@~1.3.4
50 - deps: express-session@~1.10.3
51 - deps: http-errors@~1.3.1
52 - deps: response-time@~2.3.0
53 - deps: serve-index@~1.6.2
54 - deps: serve-static@~1.9.1
55 - deps: type-is@~1.6.0
56 * deps: cookie-signature@1.0.6
57 * deps: send@0.12.1
58 - Always read the stat size from the file
59 - Fix mutating passed-in `options`
60 - deps: mime@1.3.4
61
623.19.2 / 2015-02-01
63===================
64
65 * deps: connect@2.28.3
66 - deps: compression@~1.3.1
67 - deps: csurf@~1.6.6
68 - deps: errorhandler@~1.3.3
69 - deps: express-session@~1.10.2
70 - deps: serve-index@~1.6.1
71 - deps: type-is@~1.5.6
72 * deps: proxy-addr@~1.0.6
73 - deps: ipaddr.js@0.1.8
74
753.19.1 / 2015-01-20
76===================
77
78 * deps: connect@2.28.2
79 - deps: body-parser@~1.10.2
80 - deps: serve-static@~1.8.1
81 * deps: send@0.11.1
82 - Fix root path disclosure
83
843.19.0 / 2015-01-09
85===================
86
87 * Fix `OPTIONS` responses to include the `HEAD` method property
88 * Use `readline` for prompt in `express(1)`
89 * deps: commander@2.6.0
90 * deps: connect@2.28.1
91 - deps: body-parser@~1.10.1
92 - deps: compression@~1.3.0
93 - deps: connect-timeout@~1.5.0
94 - deps: csurf@~1.6.4
95 - deps: debug@~2.1.1
96 - deps: errorhandler@~1.3.2
97 - deps: express-session@~1.10.1
98 - deps: finalhandler@0.3.3
99 - deps: method-override@~2.3.1
100 - deps: morgan@~1.5.1
101 - deps: serve-favicon@~2.2.0
102 - deps: serve-index@~1.6.0
103 - deps: serve-static@~1.8.0
104 - deps: type-is@~1.5.5
105 * deps: debug@~2.1.1
106 * deps: methods@~1.1.1
107 * deps: proxy-addr@~1.0.5
108 - deps: ipaddr.js@0.1.6
109 * deps: send@0.11.0
110 - deps: debug@~2.1.1
111 - deps: etag@~1.5.1
112 - deps: ms@0.7.0
113 - deps: on-finished@~2.2.0
114
1153.18.6 / 2014-12-12
116===================
117
118 * Fix exception in `req.fresh`/`req.stale` without response headers
119
1203.18.5 / 2014-12-11
121===================
122
123 * deps: connect@2.27.6
124 - deps: compression@~1.2.2
125 - deps: express-session@~1.9.3
126 - deps: http-errors@~1.2.8
127 - deps: serve-index@~1.5.3
128 - deps: type-is@~1.5.4
129
1303.18.4 / 2014-11-23
131===================
132
133 * deps: connect@2.27.4
134 - deps: body-parser@~1.9.3
135 - deps: compression@~1.2.1
136 - deps: errorhandler@~1.2.3
137 - deps: express-session@~1.9.2
138 - deps: qs@2.3.3
139 - deps: serve-favicon@~2.1.7
140 - deps: serve-static@~1.5.1
141 - deps: type-is@~1.5.3
142 * deps: etag@~1.5.1
143 * deps: proxy-addr@~1.0.4
144 - deps: ipaddr.js@0.1.5
145
1463.18.3 / 2014-11-09
147===================
148
149 * deps: connect@2.27.3
150 - Correctly invoke async callback asynchronously
151 - deps: csurf@~1.6.3
152
1533.18.2 / 2014-10-28
154===================
155
156 * deps: connect@2.27.2
157 - Fix handling of URLs containing `://` in the path
158 - deps: body-parser@~1.9.2
159 - deps: qs@2.3.2
160
1613.18.1 / 2014-10-22
162===================
163
164 * Fix internal `utils.merge` deprecation warnings
165 * deps: connect@2.27.1
166 - deps: body-parser@~1.9.1
167 - deps: express-session@~1.9.1
168 - deps: finalhandler@0.3.2
169 - deps: morgan@~1.4.1
170 - deps: qs@2.3.0
171 - deps: serve-static@~1.7.1
172 * deps: send@0.10.1
173 - deps: on-finished@~2.1.1
174
1753.18.0 / 2014-10-17
176===================
177
178 * Use `content-disposition` module for `res.attachment`/`res.download`
179 - Sends standards-compliant `Content-Disposition` header
180 - Full Unicode support
181 * Use `etag` module to generate `ETag` headers
182 * deps: connect@2.27.0
183 - Use `http-errors` module for creating errors
184 - Use `utils-merge` module for merging objects
185 - deps: body-parser@~1.9.0
186 - deps: compression@~1.2.0
187 - deps: connect-timeout@~1.4.0
188 - deps: debug@~2.1.0
189 - deps: depd@~1.0.0
190 - deps: express-session@~1.9.0
191 - deps: finalhandler@0.3.1
192 - deps: method-override@~2.3.0
193 - deps: morgan@~1.4.0
194 - deps: response-time@~2.2.0
195 - deps: serve-favicon@~2.1.6
196 - deps: serve-index@~1.5.0
197 - deps: serve-static@~1.7.0
198 * deps: debug@~2.1.0
199 - Implement `DEBUG_FD` env variable support
200 * deps: depd@~1.0.0
201 * deps: send@0.10.0
202 - deps: debug@~2.1.0
203 - deps: depd@~1.0.0
204 - deps: etag@~1.5.0
205
2063.17.8 / 2014-10-15
207===================
208
209 * deps: connect@2.26.6
210 - deps: compression@~1.1.2
211 - deps: csurf@~1.6.2
212 - deps: errorhandler@~1.2.2
213
2143.17.7 / 2014-10-08
215===================
216
217 * deps: connect@2.26.5
218 - Fix accepting non-object arguments to `logger`
219 - deps: serve-static@~1.6.4
220
2213.17.6 / 2014-10-02
222===================
223
224 * deps: connect@2.26.4
225 - deps: morgan@~1.3.2
226 - deps: type-is@~1.5.2
227
2283.17.5 / 2014-09-24
229===================
230
231 * deps: connect@2.26.3
232 - deps: body-parser@~1.8.4
233 - deps: serve-favicon@~2.1.5
234 - deps: serve-static@~1.6.3
235 * deps: proxy-addr@~1.0.3
236 - Use `forwarded` npm module
237 * deps: send@0.9.3
238 - deps: etag@~1.4.0
239
2403.17.4 / 2014-09-19
241===================
242
243 * deps: connect@2.26.2
244 - deps: body-parser@~1.8.3
245 - deps: qs@2.2.4
246
2473.17.3 / 2014-09-18
248===================
249
250 * deps: proxy-addr@~1.0.2
251 - Fix a global leak when multiple subnets are trusted
252 - deps: ipaddr.js@0.1.3
253
2543.17.2 / 2014-09-15
255===================
256
257 * Use `crc` instead of `buffer-crc32` for speed
258 * deps: connect@2.26.1
259 - deps: body-parser@~1.8.2
260 - deps: depd@0.4.5
261 - deps: express-session@~1.8.2
262 - deps: morgan@~1.3.1
263 - deps: serve-favicon@~2.1.3
264 - deps: serve-static@~1.6.2
265 * deps: depd@0.4.5
266 * deps: send@0.9.2
267 - deps: depd@0.4.5
268 - deps: etag@~1.3.1
269 - deps: range-parser@~1.0.2
270
2713.17.1 / 2014-09-08
272===================
273
274 * Fix error in `req.subdomains` on empty host
275
2763.17.0 / 2014-09-08
277===================
278
279 * Support IP address host in `req.subdomains`
280 * deps: connect@2.26.0
281 - deps: body-parser@~1.8.1
282 - deps: compression@~1.1.0
283 - deps: connect-timeout@~1.3.0
284 - deps: cookie-parser@~1.3.3
285 - deps: cookie-signature@1.0.5
286 - deps: csurf@~1.6.1
287 - deps: debug@~2.0.0
288 - deps: errorhandler@~1.2.0
289 - deps: express-session@~1.8.1
290 - deps: finalhandler@0.2.0
291 - deps: fresh@0.2.4
292 - deps: media-typer@0.3.0
293 - deps: method-override@~2.2.0
294 - deps: morgan@~1.3.0
295 - deps: qs@2.2.3
296 - deps: serve-favicon@~2.1.3
297 - deps: serve-index@~1.2.1
298 - deps: serve-static@~1.6.1
299 - deps: type-is@~1.5.1
300 - deps: vhost@~3.0.0
301 * deps: cookie-signature@1.0.5
302 * deps: debug@~2.0.0
303 * deps: fresh@0.2.4
304 * deps: media-typer@0.3.0
305 - Throw error when parameter format invalid on parse
306 * deps: range-parser@~1.0.2
307 * deps: send@0.9.1
308 - Add `lastModified` option
309 - Use `etag` to generate `ETag` header
310 - deps: debug@~2.0.0
311 - deps: fresh@0.2.4
312 * deps: vary@~1.0.0
313 - Accept valid `Vary` header string as `field`
314
3153.16.10 / 2014-09-04
316====================
317
318 * deps: connect@2.25.10
319 - deps: serve-static@~1.5.4
320 * deps: send@0.8.5
321 - Fix a path traversal issue when using `root`
322 - Fix malicious path detection for empty string path
323
3243.16.9 / 2014-08-29
325===================
326
327 * deps: connect@2.25.9
328 - deps: body-parser@~1.6.7
329 - deps: qs@2.2.2
330
3313.16.8 / 2014-08-27
332===================
333
334 * deps: connect@2.25.8
335 - deps: body-parser@~1.6.6
336 - deps: csurf@~1.4.1
337 - deps: qs@2.2.0
338
3393.16.7 / 2014-08-18
340===================
341
342 * deps: connect@2.25.7
343 - deps: body-parser@~1.6.5
344 - deps: express-session@~1.7.6
345 - deps: morgan@~1.2.3
346 - deps: serve-static@~1.5.3
347 * deps: send@0.8.3
348 - deps: destroy@1.0.3
349 - deps: on-finished@2.1.0
350
3513.16.6 / 2014-08-14
352===================
353
354 * deps: connect@2.25.6
355 - deps: body-parser@~1.6.4
356 - deps: qs@1.2.2
357 - deps: serve-static@~1.5.2
358 * deps: send@0.8.2
359 - Work around `fd` leak in Node.js 0.10 for `fs.ReadStream`
360
3613.16.5 / 2014-08-11
362===================
363
364 * deps: connect@2.25.5
365 - Fix backwards compatibility in `logger`
366
3673.16.4 / 2014-08-10
368===================
369
370 * Fix original URL parsing in `res.location`
371 * deps: connect@2.25.4
372 - Fix `query` middleware breaking with argument
373 - deps: body-parser@~1.6.3
374 - deps: compression@~1.0.11
375 - deps: connect-timeout@~1.2.2
376 - deps: express-session@~1.7.5
377 - deps: method-override@~2.1.3
378 - deps: on-headers@~1.0.0
379 - deps: parseurl@~1.3.0
380 - deps: qs@1.2.1
381 - deps: response-time@~2.0.1
382 - deps: serve-index@~1.1.6
383 - deps: serve-static@~1.5.1
384 * deps: parseurl@~1.3.0
385
3863.16.3 / 2014-08-07
387===================
388
389 * deps: connect@2.25.3
390 - deps: multiparty@3.3.2
391
3923.16.2 / 2014-08-07
393===================
394
395 * deps: connect@2.25.2
396 - deps: body-parser@~1.6.2
397 - deps: qs@1.2.0
398
3993.16.1 / 2014-08-06
400===================
401
402 * deps: connect@2.25.1
403 - deps: body-parser@~1.6.1
404 - deps: qs@1.1.0
405
4063.16.0 / 2014-08-05
407===================
408
409 * deps: connect@2.25.0
410 - deps: body-parser@~1.6.0
411 - deps: compression@~1.0.10
412 - deps: csurf@~1.4.0
413 - deps: express-session@~1.7.4
414 - deps: qs@1.0.2
415 - deps: serve-static@~1.5.0
416 * deps: send@0.8.1
417 - Add `extensions` option
418
4193.15.3 / 2014-08-04
420===================
421
422 * fix `res.sendfile` regression for serving directory index files
423 * deps: connect@2.24.3
424 - deps: serve-index@~1.1.5
425 - deps: serve-static@~1.4.4
426 * deps: send@0.7.4
427 - Fix incorrect 403 on Windows and Node.js 0.11
428 - Fix serving index files without root dir
429
4303.15.2 / 2014-07-27
431===================
432
433 * deps: connect@2.24.2
434 - deps: body-parser@~1.5.2
435 - deps: depd@0.4.4
436 - deps: express-session@~1.7.2
437 - deps: morgan@~1.2.2
438 - deps: serve-static@~1.4.2
439 * deps: depd@0.4.4
440 - Work-around v8 generating empty stack traces
441 * deps: send@0.7.2
442 - deps: depd@0.4.4
443
4443.15.1 / 2014-07-26
445===================
446
447 * deps: connect@2.24.1
448 - deps: body-parser@~1.5.1
449 - deps: depd@0.4.3
450 - deps: express-session@~1.7.1
451 - deps: morgan@~1.2.1
452 - deps: serve-index@~1.1.4
453 - deps: serve-static@~1.4.1
454 * deps: depd@0.4.3
455 - Fix exception when global `Error.stackTraceLimit` is too low
456 * deps: send@0.7.1
457 - deps: depd@0.4.3
458
4593.15.0 / 2014-07-22
460===================
461
462 * Fix `req.protocol` for proxy-direct connections
463 * Pass options from `res.sendfile` to `send`
464 * deps: connect@2.24.0
465 - deps: body-parser@~1.5.0
466 - deps: compression@~1.0.9
467 - deps: connect-timeout@~1.2.1
468 - deps: debug@1.0.4
469 - deps: depd@0.4.2
470 - deps: express-session@~1.7.0
471 - deps: finalhandler@0.1.0
472 - deps: method-override@~2.1.2
473 - deps: morgan@~1.2.0
474 - deps: multiparty@3.3.1
475 - deps: parseurl@~1.2.0
476 - deps: serve-static@~1.4.0
477 * deps: debug@1.0.4
478 * deps: depd@0.4.2
479 - Add `TRACE_DEPRECATION` environment variable
480 - Remove non-standard grey color from color output
481 - Support `--no-deprecation` argument
482 - Support `--trace-deprecation` argument
483 * deps: parseurl@~1.2.0
484 - Cache URLs based on original value
485 - Remove no-longer-needed URL mis-parse work-around
486 - Simplify the "fast-path" `RegExp`
487 * deps: send@0.7.0
488 - Add `dotfiles` option
489 - Cap `maxAge` value to 1 year
490 - deps: debug@1.0.4
491 - deps: depd@0.4.2
492
4933.14.0 / 2014-07-11
494===================
495
496 * add explicit "Rosetta Flash JSONP abuse" protection
497 - previous versions are not vulnerable; this is just explicit protection
498 * deprecate `res.redirect(url, status)` -- use `res.redirect(status, url)` instead
499 * fix `res.send(status, num)` to send `num` as json (not error)
500 * remove unnecessary escaping when `res.jsonp` returns JSON response
501 * deps: basic-auth@1.0.0
502 - support empty password
503 - support empty username
504 * deps: connect@2.23.0
505 - deps: debug@1.0.3
506 - deps: express-session@~1.6.4
507 - deps: method-override@~2.1.0
508 - deps: parseurl@~1.1.3
509 - deps: serve-static@~1.3.1
510 * deps: debug@1.0.3
511 - Add support for multiple wildcards in namespaces
512 * deps: methods@1.1.0
513 - add `CONNECT`
514 * deps: parseurl@~1.1.3
515 - faster parsing of href-only URLs
516
5173.13.0 / 2014-07-03
518===================
519
520 * add deprecation message to `app.configure`
521 * add deprecation message to `req.auth`
522 * use `basic-auth` to parse `Authorization` header
523 * deps: connect@2.22.0
524 - deps: csurf@~1.3.0
525 - deps: express-session@~1.6.1
526 - deps: multiparty@3.3.0
527 - deps: serve-static@~1.3.0
528 * deps: send@0.5.0
529 - Accept string for `maxage` (converted by `ms`)
530 - Include link in default redirect response
531
5323.12.1 / 2014-06-26
533===================
534
535 * deps: connect@2.21.1
536 - deps: cookie-parser@1.3.2
537 - deps: cookie-signature@1.0.4
538 - deps: express-session@~1.5.2
539 - deps: type-is@~1.3.2
540 * deps: cookie-signature@1.0.4
541 - fix for timing attacks
542
5433.12.0 / 2014-06-21
544===================
545
546 * use `media-typer` to alter content-type charset
547 * deps: connect@2.21.0
548 - deprecate `connect(middleware)` -- use `app.use(middleware)` instead
549 - deprecate `connect.createServer()` -- use `connect()` instead
550 - fix `res.setHeader()` patch to work with with get -> append -> set pattern
551 - deps: compression@~1.0.8
552 - deps: errorhandler@~1.1.1
553 - deps: express-session@~1.5.0
554 - deps: serve-index@~1.1.3
555
5563.11.0 / 2014-06-19
557===================
558
559 * deprecate things with `depd` module
560 * deps: buffer-crc32@0.2.3
561 * deps: connect@2.20.2
562 - deprecate `verify` option to `json` -- use `body-parser` npm module instead
563 - deprecate `verify` option to `urlencoded` -- use `body-parser` npm module instead
564 - deprecate things with `depd` module
565 - use `finalhandler` for final response handling
566 - use `media-typer` to parse `content-type` for charset
567 - deps: body-parser@1.4.3
568 - deps: connect-timeout@1.1.1
569 - deps: cookie-parser@1.3.1
570 - deps: csurf@1.2.2
571 - deps: errorhandler@1.1.0
572 - deps: express-session@1.4.0
573 - deps: multiparty@3.2.9
574 - deps: serve-index@1.1.2
575 - deps: type-is@1.3.1
576 - deps: vhost@2.0.0
577
5783.10.5 / 2014-06-11
579===================
580
581 * deps: connect@2.19.6
582 - deps: body-parser@1.3.1
583 - deps: compression@1.0.7
584 - deps: debug@1.0.2
585 - deps: serve-index@1.1.1
586 - deps: serve-static@1.2.3
587 * deps: debug@1.0.2
588 * deps: send@0.4.3
589 - Do not throw un-catchable error on file open race condition
590 - Use `escape-html` for HTML escaping
591 - deps: debug@1.0.2
592 - deps: finished@1.2.2
593 - deps: fresh@0.2.2
594
5953.10.4 / 2014-06-09
596===================
597
598 * deps: connect@2.19.5
599 - fix "event emitter leak" warnings
600 - deps: csurf@1.2.1
601 - deps: debug@1.0.1
602 - deps: serve-static@1.2.2
603 - deps: type-is@1.2.1
604 * deps: debug@1.0.1
605 * deps: send@0.4.2
606 - fix "event emitter leak" warnings
607 - deps: finished@1.2.1
608 - deps: debug@1.0.1
609
6103.10.3 / 2014-06-05
611===================
612
613 * use `vary` module for `res.vary`
614 * deps: connect@2.19.4
615 - deps: errorhandler@1.0.2
616 - deps: method-override@2.0.2
617 - deps: serve-favicon@2.0.1
618 * deps: debug@1.0.0
619
6203.10.2 / 2014-06-03
621===================
622
623 * deps: connect@2.19.3
624 - deps: compression@1.0.6
625
6263.10.1 / 2014-06-03
627===================
628
629 * deps: connect@2.19.2
630 - deps: compression@1.0.4
631 * deps: proxy-addr@1.0.1
632
6333.10.0 / 2014-06-02
634===================
635
636 * deps: connect@2.19.1
637 - deprecate `methodOverride()` -- use `method-override` npm module instead
638 - deps: body-parser@1.3.0
639 - deps: method-override@2.0.1
640 - deps: multiparty@3.2.8
641 - deps: response-time@2.0.0
642 - deps: serve-static@1.2.1
643 * deps: methods@1.0.1
644 * deps: send@0.4.1
645 - Send `max-age` in `Cache-Control` in correct format
646
6473.9.0 / 2014-05-30
648==================
649
650 * custom etag control with `app.set('etag', val)`
651 - `app.set('etag', function(body, encoding){ return '"etag"' })` custom etag generation
652 - `app.set('etag', 'weak')` weak tag
653 - `app.set('etag', 'strong')` strong etag
654 - `app.set('etag', false)` turn off
655 - `app.set('etag', true)` standard etag
656 * Include ETag in HEAD requests
657 * mark `res.send` ETag as weak and reduce collisions
658 * update connect to 2.18.0
659 - deps: compression@1.0.3
660 - deps: serve-index@1.1.0
661 - deps: serve-static@1.2.0
662 * update send to 0.4.0
663 - Calculate ETag with md5 for reduced collisions
664 - Ignore stream errors after request ends
665 - deps: debug@0.8.1
666
6673.8.1 / 2014-05-27
668==================
669
670 * update connect to 2.17.3
671 - deps: body-parser@1.2.2
672 - deps: express-session@1.2.1
673 - deps: method-override@1.0.2
674
6753.8.0 / 2014-05-21
676==================
677
678 * keep previous `Content-Type` for `res.jsonp`
679 * set proper `charset` in `Content-Type` for `res.send`
680 * update connect to 2.17.1
681 - fix `res.charset` appending charset when `content-type` has one
682 - deps: express-session@1.2.0
683 - deps: morgan@1.1.1
684 - deps: serve-index@1.0.3
685
6863.7.0 / 2014-05-18
687==================
688
689 * proper proxy trust with `app.set('trust proxy', trust)`
690 - `app.set('trust proxy', 1)` trust first hop
691 - `app.set('trust proxy', 'loopback')` trust loopback addresses
692 - `app.set('trust proxy', '10.0.0.1')` trust single IP
693 - `app.set('trust proxy', '10.0.0.1/16')` trust subnet
694 - `app.set('trust proxy', '10.0.0.1, 10.0.0.2')` trust list
695 - `app.set('trust proxy', false)` turn off
696 - `app.set('trust proxy', true)` trust everything
697 * update connect to 2.16.2
698 - deprecate `res.headerSent` -- use `res.headersSent`
699 - deprecate `res.on("header")` -- use on-headers module instead
700 - fix edge-case in `res.appendHeader` that would append in wrong order
701 - json: use body-parser
702 - urlencoded: use body-parser
703 - dep: bytes@1.0.0
704 - dep: cookie-parser@1.1.0
705 - dep: csurf@1.2.0
706 - dep: express-session@1.1.0
707 - dep: method-override@1.0.1
708
7093.6.0 / 2014-05-09
710==================
711
712 * deprecate `app.del()` -- use `app.delete()` instead
713 * deprecate `res.json(obj, status)` -- use `res.json(status, obj)` instead
714 - the edge-case `res.json(status, num)` requires `res.status(status).json(num)`
715 * deprecate `res.jsonp(obj, status)` -- use `res.jsonp(status, obj)` instead
716 - the edge-case `res.jsonp(status, num)` requires `res.status(status).jsonp(num)`
717 * support PURGE method
718 - add `app.purge`
719 - add `router.purge`
720 - include PURGE in `app.all`
721 * update connect to 2.15.0
722 * Add `res.appendHeader`
723 * Call error stack even when response has been sent
724 * Patch `res.headerSent` to return Boolean
725 * Patch `res.headersSent` for node.js 0.8
726 * Prevent default 404 handler after response sent
727 * dep: compression@1.0.2
728 * dep: connect-timeout@1.1.0
729 * dep: debug@^0.8.0
730 * dep: errorhandler@1.0.1
731 * dep: express-session@1.0.4
732 * dep: morgan@1.0.1
733 * dep: serve-favicon@2.0.0
734 * dep: serve-index@1.0.2
735 * update debug to 0.8.0
736 * add `enable()` method
737 * change from stderr to stdout
738 * update methods to 1.0.0
739 - add PURGE
740 * update mkdirp to 0.5.0
741
7423.5.3 / 2014-05-08
743==================
744
745 * fix `req.host` for IPv6 literals
746 * fix `res.jsonp` error if callback param is object
747
7483.5.2 / 2014-04-24
749==================
750
751 * update connect to 2.14.5
752 * update cookie to 0.1.2
753 * update mkdirp to 0.4.0
754 * update send to 0.3.0
755
7563.5.1 / 2014-03-25
757==================
758
759 * pin less-middleware in generated app
760
7613.5.0 / 2014-03-06
762==================
763
764 * bump deps
765
7663.4.8 / 2014-01-13
767==================
768
769 * prevent incorrect automatic OPTIONS responses #1868 @dpatti
770 * update binary and examples for jade 1.0 #1876 @yossi, #1877 @reqshark, #1892 @matheusazzi
771 * throw 400 in case of malformed paths @rlidwka
772
7733.4.7 / 2013-12-10
774==================
775
776 * update connect
777
7783.4.6 / 2013-12-01
779==================
780
781 * update connect (raw-body)
782
7833.4.5 / 2013-11-27
784==================
785
786 * update connect
787 * res.location: remove leading ./ #1802 @kapouer
788 * res.redirect: fix `res.redirect('toString') #1829 @michaelficarra
789 * res.send: always send ETag when content-length > 0
790 * router: add Router.all() method
791
7923.4.4 / 2013-10-29
793==================
794
795 * update connect
796 * update supertest
797 * update methods
798 * express(1): replace bodyParser() with urlencoded() and json() #1795 @chirag04
799
8003.4.3 / 2013-10-23
801==================
802
803 * update connect
804
8053.4.2 / 2013-10-18
806==================
807
808 * update connect
809 * downgrade commander
810
8113.4.1 / 2013-10-15
812==================
813
814 * update connect
815 * update commander
816 * jsonp: check if callback is a function
817 * router: wrap encodeURIComponent in a try/catch #1735 (@lxe)
818 * res.format: now includes chraset @1747 (@sorribas)
819 * res.links: allow multiple calls @1746 (@sorribas)
820
8213.4.0 / 2013-09-07
822==================
823
824 * add res.vary(). Closes #1682
825 * update connect
826
8273.3.8 / 2013-09-02
828==================
829
830 * update connect
831
8323.3.7 / 2013-08-28
833==================
834
835 * update connect
836
8373.3.6 / 2013-08-27
838==================
839
840 * Revert "remove charset from json responses. Closes #1631" (causes issues in some clients)
841 * add: req.accepts take an argument list
842
8433.3.4 / 2013-07-08
844==================
845
846 * update send and connect
847
8483.3.3 / 2013-07-04
849==================
850
851 * update connect
852
8533.3.2 / 2013-07-03
854==================
855
856 * update connect
857 * update send
858 * remove .version export
859
8603.3.1 / 2013-06-27
861==================
862
863 * update connect
864
8653.3.0 / 2013-06-26
866==================
867
868 * update connect
869 * add support for multiple X-Forwarded-Proto values. Closes #1646
870 * change: remove charset from json responses. Closes #1631
871 * change: return actual booleans from req.accept* functions
872 * fix jsonp callback array throw
873
8743.2.6 / 2013-06-02
875==================
876
877 * update connect
878
8793.2.5 / 2013-05-21
880==================
881
882 * update connect
883 * update node-cookie
884 * add: throw a meaningful error when there is no default engine
885 * change generation of ETags with res.send() to GET requests only. Closes #1619
886
8873.2.4 / 2013-05-09
888==================
889
890 * fix `req.subdomains` when no Host is present
891 * fix `req.host` when no Host is present, return undefined
892
8933.2.3 / 2013-05-07
894==================
895
896 * update connect / qs
897
8983.2.2 / 2013-05-03
899==================
900
901 * update qs
902
9033.2.1 / 2013-04-29
904==================
905
906 * add app.VERB() paths array deprecation warning
907 * update connect
908 * update qs and remove all ~ semver crap
909 * fix: accept number as value of Signed Cookie
910
9113.2.0 / 2013-04-15
912==================
913
914 * add "view" constructor setting to override view behaviour
915 * add req.acceptsEncoding(name)
916 * add req.acceptedEncodings
917 * revert cookie signature change causing session race conditions
918 * fix sorting of Accept values of the same quality
919
9203.1.2 / 2013-04-12
921==================
922
923 * add support for custom Accept parameters
924 * update cookie-signature
925
9263.1.1 / 2013-04-01
927==================
928
929 * add X-Forwarded-Host support to `req.host`
930 * fix relative redirects
931 * update mkdirp
932 * update buffer-crc32
933 * remove legacy app.configure() method from app template.
934
9353.1.0 / 2013-01-25
936==================
937
938 * add support for leading "." in "view engine" setting
939 * add array support to `res.set()`
940 * add node 0.8.x to travis.yml
941 * add "subdomain offset" setting for tweaking `req.subdomains`
942 * add `res.location(url)` implementing `res.redirect()`-like setting of Location
943 * use app.get() for x-powered-by setting for inheritance
944 * fix colons in passwords for `req.auth`
945
9463.0.6 / 2013-01-04
947==================
948
949 * add http verb methods to Router
950 * update connect
951 * fix mangling of the `res.cookie()` options object
952 * fix jsonp whitespace escape. Closes #1132
953
9543.0.5 / 2012-12-19
955==================
956
957 * add throwing when a non-function is passed to a route
958 * fix: explicitly remove Transfer-Encoding header from 204 and 304 responses
959 * revert "add 'etag' option"
960
9613.0.4 / 2012-12-05
962==================
963
964 * add 'etag' option to disable `res.send()` Etags
965 * add escaping of urls in text/plain in `res.redirect()`
966 for old browsers interpreting as html
967 * change crc32 module for a more liberal license
968 * update connect
969
9703.0.3 / 2012-11-13
971==================
972
973 * update connect
974 * update cookie module
975 * fix cookie max-age
976
9773.0.2 / 2012-11-08
978==================
979
980 * add OPTIONS to cors example. Closes #1398
981 * fix route chaining regression. Closes #1397
982
9833.0.1 / 2012-11-01
984==================
985
986 * update connect
987
9883.0.0 / 2012-10-23
989==================
990
991 * add `make clean`
992 * add "Basic" check to req.auth
993 * add `req.auth` test coverage
994 * add cb && cb(payload) to `res.jsonp()`. Closes #1374
995 * add backwards compat for `res.redirect()` status. Closes #1336
996 * add support for `res.json()` to retain previously defined Content-Types. Closes #1349
997 * update connect
998 * change `res.redirect()` to utilize a pathname-relative Location again. Closes #1382
999 * remove non-primitive string support for `res.send()`
1000 * fix view-locals example. Closes #1370
1001 * fix route-separation example
1002
10033.0.0rc5 / 2012-09-18
1004==================
1005
1006 * update connect
1007 * add redis search example
1008 * add static-files example
1009 * add "x-powered-by" setting (`app.disable('x-powered-by')`)
1010 * add "application/octet-stream" redirect Accept test case. Closes #1317
1011
10123.0.0rc4 / 2012-08-30
1013==================
1014
1015 * add `res.jsonp()`. Closes #1307
1016 * add "verbose errors" option to error-pages example
1017 * add another route example to express(1) so people are not so confused
1018 * add redis online user activity tracking example
1019 * update connect dep
1020 * fix etag quoting. Closes #1310
1021 * fix error-pages 404 status
1022 * fix jsonp callback char restrictions
1023 * remove old OPTIONS default response
1024
10253.0.0rc3 / 2012-08-13
1026==================
1027
1028 * update connect dep
1029 * fix signed cookies to work with `connect.cookieParser()` ("s:" prefix was missing) [tnydwrds]
1030 * fix `res.render()` clobbering of "locals"
1031
10323.0.0rc2 / 2012-08-03
1033==================
1034
1035 * add CORS example
1036 * update connect dep
1037 * deprecate `.createServer()` & remove old stale examples
1038 * fix: escape `res.redirect()` link
1039 * fix vhost example
1040
10413.0.0rc1 / 2012-07-24
1042==================
1043
1044 * add more examples to view-locals
1045 * add scheme-relative redirects (`res.redirect("//foo.com")`) support
1046 * update cookie dep
1047 * update connect dep
1048 * update send dep
1049 * fix `express(1)` -h flag, use -H for hogan. Closes #1245
1050 * fix `res.sendfile()` socket error handling regression
1051
10523.0.0beta7 / 2012-07-16
1053==================
1054
1055 * update connect dep for `send()` root normalization regression
1056
10573.0.0beta6 / 2012-07-13
1058==================
1059
1060 * add `err.view` property for view errors. Closes #1226
1061 * add "jsonp callback name" setting
1062 * add support for "/foo/:bar*" non-greedy matches
1063 * change `res.sendfile()` to use `send()` module
1064 * change `res.send` to use "response-send" module
1065 * remove `app.locals.use` and `res.locals.use`, use regular middleware
1066
10673.0.0beta5 / 2012-07-03
1068==================
1069
1070 * add "make check" support
1071 * add route-map example
1072 * add `res.json(obj, status)` support back for BC
1073 * add "methods" dep, remove internal methods module
1074 * update connect dep
1075 * update auth example to utilize cores pbkdf2
1076 * updated tests to use "supertest"
1077
10783.0.0beta4 / 2012-06-25
1079==================
1080
1081 * Added `req.auth`
1082 * Added `req.range(size)`
1083 * Added `res.links(obj)`
1084 * Added `res.send(body, status)` support back for backwards compat
1085 * Added `.default()` support to `res.format()`
1086 * Added 2xx / 304 check to `req.fresh`
1087 * Revert "Added + support to the router"
1088 * Fixed `res.send()` freshness check, respect res.statusCode
1089
10903.0.0beta3 / 2012-06-15
1091==================
1092
1093 * Added hogan `--hjs` to express(1) [nullfirm]
1094 * Added another example to content-negotiation
1095 * Added `fresh` dep
1096 * Changed: `res.send()` always checks freshness
1097 * Fixed: expose connects mime module. Cloases #1165
1098
10993.0.0beta2 / 2012-06-06
1100==================
1101
1102 * Added `+` support to the router
1103 * Added `req.host`
1104 * Changed `req.param()` to check route first
1105 * Update connect dep
1106
11073.0.0beta1 / 2012-06-01
1108==================
1109
1110 * Added `res.format()` callback to override default 406 behaviour
1111 * Fixed `res.redirect()` 406. Closes #1154
1112
11133.0.0alpha5 / 2012-05-30
1114==================
1115
1116 * Added `req.ip`
1117 * Added `{ signed: true }` option to `res.cookie()`
1118 * Removed `res.signedCookie()`
1119 * Changed: dont reverse `req.ips`
1120 * Fixed "trust proxy" setting check for `req.ips`
1121
11223.0.0alpha4 / 2012-05-09
1123==================
1124
1125 * Added: allow `[]` in jsonp callback. Closes #1128
1126 * Added `PORT` env var support in generated template. Closes #1118 [benatkin]
1127 * Updated: connect 2.2.2
1128
11293.0.0alpha3 / 2012-05-04
1130==================
1131
1132 * Added public `app.routes`. Closes #887
1133 * Added _view-locals_ example
1134 * Added _mvc_ example
1135 * Added `res.locals.use()`. Closes #1120
1136 * Added conditional-GET support to `res.send()`
1137 * Added: coerce `res.set()` values to strings
1138 * Changed: moved `static()` in generated apps below router
1139 * Changed: `res.send()` only set ETag when not previously set
1140 * Changed connect 2.2.1 dep
1141 * Changed: `make test` now runs unit / acceptance tests
1142 * Fixed req/res proto inheritance
1143
11443.0.0alpha2 / 2012-04-26
1145==================
1146
1147 * Added `make benchmark` back
1148 * Added `res.send()` support for `String` objects
1149 * Added client-side data exposing example
1150 * Added `res.header()` and `req.header()` aliases for BC
1151 * Added `express.createServer()` for BC
1152 * Perf: memoize parsed urls
1153 * Perf: connect 2.2.0 dep
1154 * Changed: make `expressInit()` middleware self-aware
1155 * Fixed: use app.get() for all core settings
1156 * Fixed redis session example
1157 * Fixed session example. Closes #1105
1158 * Fixed generated express dep. Closes #1078
1159
11603.0.0alpha1 / 2012-04-15
1161==================
1162
1163 * Added `app.locals.use(callback)`
1164 * Added `app.locals` object
1165 * Added `app.locals(obj)`
1166 * Added `res.locals` object
1167 * Added `res.locals(obj)`
1168 * Added `res.format()` for content-negotiation
1169 * Added `app.engine()`
1170 * Added `res.cookie()` JSON cookie support
1171 * Added "trust proxy" setting
1172 * Added `req.subdomains`
1173 * Added `req.protocol`
1174 * Added `req.secure`
1175 * Added `req.path`
1176 * Added `req.ips`
1177 * Added `req.fresh`
1178 * Added `req.stale`
1179 * Added comma-delmited / array support for `req.accepts()`
1180 * Added debug instrumentation
1181 * Added `res.set(obj)`
1182 * Added `res.set(field, value)`
1183 * Added `res.get(field)`
1184 * Added `app.get(setting)`. Closes #842
1185 * Added `req.acceptsLanguage()`
1186 * Added `req.acceptsCharset()`
1187 * Added `req.accepted`
1188 * Added `req.acceptedLanguages`
1189 * Added `req.acceptedCharsets`
1190 * Added "json replacer" setting
1191 * Added "json spaces" setting
1192 * Added X-Forwarded-Proto support to `res.redirect()`. Closes #92
1193 * Added `--less` support to express(1)
1194 * Added `express.response` prototype
1195 * Added `express.request` prototype
1196 * Added `express.application` prototype
1197 * Added `app.path()`
1198 * Added `app.render()`
1199 * Added `res.type()` to replace `res.contentType()`
1200 * Changed: `res.redirect()` to add relative support
1201 * Changed: enable "jsonp callback" by default
1202 * Changed: renamed "case sensitive routes" to "case sensitive routing"
1203 * Rewrite of all tests with mocha
1204 * Removed "root" setting
1205 * Removed `res.redirect('home')` support
1206 * Removed `req.notify()`
1207 * Removed `app.register()`
1208 * Removed `app.redirect()`
1209 * Removed `app.is()`
1210 * Removed `app.helpers()`
1211 * Removed `app.dynamicHelpers()`
1212 * Fixed `res.sendfile()` with non-GET. Closes #723
1213 * Fixed express(1) public dir for windows. Closes #866
1214
12152.5.9/ 2012-04-02
1216==================
1217
1218 * Added support for PURGE request method [pbuyle]
1219 * Fixed `express(1)` generated app `app.address()` before `listening` [mmalecki]
1220
12212.5.8 / 2012-02-08
1222==================
1223
1224 * Update mkdirp dep. Closes #991
1225
12262.5.7 / 2012-02-06
1227==================
1228
1229 * Fixed `app.all` duplicate DELETE requests [mscdex]
1230
12312.5.6 / 2012-01-13
1232==================
1233
1234 * Updated hamljs dev dep. Closes #953
1235
12362.5.5 / 2012-01-08
1237==================
1238
1239 * Fixed: set `filename` on cached templates [matthewleon]
1240
12412.5.4 / 2012-01-02
1242==================
1243
1244 * Fixed `express(1)` eol on 0.4.x. Closes #947
1245
12462.5.3 / 2011-12-30
1247==================
1248
1249 * Fixed `req.is()` when a charset is present
1250
12512.5.2 / 2011-12-10
1252==================
1253
1254 * Fixed: express(1) LF -> CRLF for windows
1255
12562.5.1 / 2011-11-17
1257==================
1258
1259 * Changed: updated connect to 1.8.x
1260 * Removed sass.js support from express(1)
1261
12622.5.0 / 2011-10-24
1263==================
1264
1265 * Added ./routes dir for generated app by default
1266 * Added npm install reminder to express(1) app gen
1267 * Added 0.5.x support
1268 * Removed `make test-cov` since it wont work with node 0.5.x
1269 * Fixed express(1) public dir for windows. Closes #866
1270
12712.4.7 / 2011-10-05
1272==================
1273
1274 * Added mkdirp to express(1). Closes #795
1275 * Added simple _json-config_ example
1276 * Added shorthand for the parsed request's pathname via `req.path`
1277 * Changed connect dep to 1.7.x to fix npm issue...
1278 * Fixed `res.redirect()` __HEAD__ support. [reported by xerox]
1279 * Fixed `req.flash()`, only escape args
1280 * Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie]
1281
12822.4.6 / 2011-08-22
1283==================
1284
1285 * Fixed multiple param callback regression. Closes #824 [reported by TroyGoode]
1286
12872.4.5 / 2011-08-19
1288==================
1289
1290 * Added support for routes to handle errors. Closes #809
1291 * Added `app.routes.all()`. Closes #803
1292 * Added "basepath" setting to work in conjunction with reverse proxies etc.
1293 * Refactored `Route` to use a single array of callbacks
1294 * Added support for multiple callbacks for `app.param()`. Closes #801
1295Closes #805
1296 * Changed: removed .call(self) for route callbacks
1297 * Dependency: `qs >= 0.3.1`
1298 * Fixed `res.redirect()` on windows due to `join()` usage. Closes #808
1299
13002.4.4 / 2011-08-05
1301==================
1302
1303 * Fixed `res.header()` intention of a set, even when `undefined`
1304 * Fixed `*`, value no longer required
1305 * Fixed `res.send(204)` support. Closes #771
1306
13072.4.3 / 2011-07-14
1308==================
1309
1310 * Added docs for `status` option special-case. Closes #739
1311 * Fixed `options.filename`, exposing the view path to template engines
1312
13132.4.2. / 2011-07-06
1314==================
1315
1316 * Revert "removed jsonp stripping" for XSS
1317
13182.4.1 / 2011-07-06
1319==================
1320
1321 * Added `res.json()` JSONP support. Closes #737
1322 * Added _extending-templates_ example. Closes #730
1323 * Added "strict routing" setting for trailing slashes
1324 * Added support for multiple envs in `app.configure()` calls. Closes #735
1325 * Changed: `res.send()` using `res.json()`
1326 * Changed: when cookie `path === null` don't default it
1327 * Changed; default cookie path to "home" setting. Closes #731
1328 * Removed _pids/logs_ creation from express(1)
1329
13302.4.0 / 2011-06-28
1331==================
1332
1333 * Added chainable `res.status(code)`
1334 * Added `res.json()`, an explicit version of `res.send(obj)`
1335 * Added simple web-service example
1336
13372.3.12 / 2011-06-22
1338==================
1339
1340 * \#express is now on freenode! come join!
1341 * Added `req.get(field, param)`
1342 * Added links to Japanese documentation, thanks @hideyukisaito!
1343 * Added; the `express(1)` generated app outputs the env
1344 * Added `content-negotiation` example
1345 * Dependency: connect >= 1.5.1 < 2.0.0
1346 * Fixed view layout bug. Closes #720
1347 * Fixed; ignore body on 304. Closes #701
1348
13492.3.11 / 2011-06-04
1350==================
1351
1352 * Added `npm test`
1353 * Removed generation of dummy test file from `express(1)`
1354 * Fixed; `express(1)` adds express as a dep
1355 * Fixed; prune on `prepublish`
1356
13572.3.10 / 2011-05-27
1358==================
1359
1360 * Added `req.route`, exposing the current route
1361 * Added _package.json_ generation support to `express(1)`
1362 * Fixed call to `app.param()` function for optional params. Closes #682
1363
13642.3.9 / 2011-05-25
1365==================
1366
1367 * Fixed bug-ish with `../' in `res.partial()` calls
1368
13692.3.8 / 2011-05-24
1370==================
1371
1372 * Fixed `app.options()`
1373
13742.3.7 / 2011-05-23
1375==================
1376
1377 * Added route `Collection`, ex: `app.get('/user/:id').remove();`
1378 * Added support for `app.param(fn)` to define param logic
1379 * Removed `app.param()` support for callback with return value
1380 * Removed module.parent check from express(1) generated app. Closes #670
1381 * Refactored router. Closes #639
1382
13832.3.6 / 2011-05-20
1384==================
1385
1386 * Changed; using devDependencies instead of git submodules
1387 * Fixed redis session example
1388 * Fixed markdown example
1389 * Fixed view caching, should not be enabled in development
1390
13912.3.5 / 2011-05-20
1392==================
1393
1394 * Added export `.view` as alias for `.View`
1395
13962.3.4 / 2011-05-08
1397==================
1398
1399 * Added `./examples/say`
1400 * Fixed `res.sendfile()` bug preventing the transfer of files with spaces
1401
14022.3.3 / 2011-05-03
1403==================
1404
1405 * Added "case sensitive routes" option.
1406 * Changed; split methods supported per rfc [slaskis]
1407 * Fixed route-specific middleware when using the same callback function several times
1408
14092.3.2 / 2011-04-27
1410==================
1411
1412 * Fixed view hints
1413
14142.3.1 / 2011-04-26
1415==================
1416
1417 * Added `app.match()` as `app.match.all()`
1418 * Added `app.lookup()` as `app.lookup.all()`
1419 * Added `app.remove()` for `app.remove.all()`
1420 * Added `app.remove.VERB()`
1421 * Fixed template caching collision issue. Closes #644
1422 * Moved router over from connect and started refactor
1423
14242.3.0 / 2011-04-25
1425==================
1426
1427 * Added options support to `res.clearCookie()`
1428 * Added `res.helpers()` as alias of `res.locals()`
1429 * Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 1.4.0`
1430 * Changed; auto set Content-Type in res.attachement [Aaron Heckmann]
1431 * Renamed "cache views" to "view cache". Closes #628
1432 * Fixed caching of views when using several apps. Closes #637
1433 * Fixed gotcha invoking `app.param()` callbacks once per route middleware.
1434Closes #638
1435 * Fixed partial lookup precedence. Closes #631
1436Shaw]
1437
14382.2.2 / 2011-04-12
1439==================
1440
1441 * Added second callback support for `res.download()` connection errors
1442 * Fixed `filename` option passing to template engine
1443
14442.2.1 / 2011-04-04
1445==================
1446
1447 * Added `layout(path)` helper to change the layout within a view. Closes #610
1448 * Fixed `partial()` collection object support.
1449 Previously only anything with `.length` would work.
1450 When `.length` is present one must still be aware of holes,
1451 however now `{ collection: {foo: 'bar'}}` is valid, exposes
1452 `keyInCollection` and `keysInCollection`.
1453
1454 * Performance improved with better view caching
1455 * Removed `request` and `response` locals
1456 * Changed; errorHandler page title is now `Express` instead of `Connect`
1457
14582.2.0 / 2011-03-30
1459==================
1460
1461 * Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
1462 * Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
1463 * Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
1464 * Dependency `connect >= 1.2.0`
1465
14662.1.1 / 2011-03-29
1467==================
1468
1469 * Added; expose `err.view` object when failing to locate a view
1470 * Fixed `res.partial()` call `next(err)` when no callback is given [reported by aheckmann]
1471 * Fixed; `res.send(undefined)` responds with 204 [aheckmann]
1472
14732.1.0 / 2011-03-24
1474==================
1475
1476 * Added `<root>/_?<name>` partial lookup support. Closes #447
1477 * Added `request`, `response`, and `app` local variables
1478 * Added `settings` local variable, containing the app's settings
1479 * Added `req.flash()` exception if `req.session` is not available
1480 * Added `res.send(bool)` support (json response)
1481 * Fixed stylus example for latest version
1482 * Fixed; wrap try/catch around `res.render()`
1483
14842.0.0 / 2011-03-17
1485==================
1486
1487 * Fixed up index view path alternative.
1488 * Changed; `res.locals()` without object returns the locals
1489
14902.0.0rc3 / 2011-03-17
1491==================
1492
1493 * Added `res.locals(obj)` to compliment `res.local(key, val)`
1494 * Added `res.partial()` callback support
1495 * Fixed recursive error reporting issue in `res.render()`
1496
14972.0.0rc2 / 2011-03-17
1498==================
1499
1500 * Changed; `partial()` "locals" are now optional
1501 * Fixed `SlowBuffer` support. Closes #584 [reported by tyrda01]
1502 * Fixed .filename view engine option [reported by drudge]
1503 * Fixed blog example
1504 * Fixed `{req,res}.app` reference when mounting [Ben Weaver]
1505
15062.0.0rc / 2011-03-14
1507==================
1508
1509 * Fixed; expose `HTTPSServer` constructor
1510 * Fixed express(1) default test charset. Closes #579 [reported by secoif]
1511 * Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP]
1512
15132.0.0beta3 / 2011-03-09
1514==================
1515
1516 * Added support for `res.contentType()` literal
1517 The original `res.contentType('.json')`,
1518 `res.contentType('application/json')`, and `res.contentType('json')`
1519 will work now.
1520 * Added `res.render()` status option support back
1521 * Added charset option for `res.render()`
1522 * Added `.charset` support (via connect 1.0.4)
1523 * Added view resolution hints when in development and a lookup fails
1524 * Added layout lookup support relative to the page view.
1525 For example while rendering `./views/user/index.jade` if you create
1526 `./views/user/layout.jade` it will be used in favour of the root layout.
1527 * Fixed `res.redirect()`. RFC states absolute url [reported by unlink]
1528 * Fixed; default `res.send()` string charset to utf8
1529 * Removed `Partial` constructor (not currently used)
1530
15312.0.0beta2 / 2011-03-07
1532==================
1533
1534 * Added res.render() `.locals` support back to aid in migration process
1535 * Fixed flash example
1536
15372.0.0beta / 2011-03-03
1538==================
1539
1540 * Added HTTPS support
1541 * Added `res.cookie()` maxAge support
1542 * Added `req.header()` _Referrer_ / _Referer_ special-case, either works
1543 * Added mount support for `res.redirect()`, now respects the mount-point
1544 * Added `union()` util, taking place of `merge(clone())` combo
1545 * Added stylus support to express(1) generated app
1546 * Added secret to session middleware used in examples and generated app
1547 * Added `res.local(name, val)` for progressive view locals
1548 * Added default param support to `req.param(name, default)`
1549 * Added `app.disabled()` and `app.enabled()`
1550 * Added `app.register()` support for omitting leading ".", either works
1551 * Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
1552 * Added `app.param()` to map route params to async/sync logic
1553 * Added; aliased `app.helpers()` as `app.locals()`. Closes #481
1554 * Added extname with no leading "." support to `res.contentType()`
1555 * Added `cache views` setting, defaulting to enabled in "production" env
1556 * Added index file partial resolution, eg: partial('user') may try _views/user/index.jade_.
1557 * Added `req.accepts()` support for extensions
1558 * Changed; `res.download()` and `res.sendfile()` now utilize Connect's
1559 static file server `connect.static.send()`.
1560 * Changed; replaced `connect.utils.mime()` with npm _mime_ module
1561 * Changed; allow `req.query` to be pre-defined (via middleware or other parent
1562 * Changed view partial resolution, now relative to parent view
1563 * Changed view engine signature. no longer `engine.render(str, options, callback)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
1564 * Fixed `req.param()` bug returning Array.prototype methods. Closes #552
1565 * Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.sendfile()`
1566 * Fixed; using _qs_ module instead of _querystring_
1567 * Fixed; strip unsafe chars from jsonp callbacks
1568 * Removed "stream threshold" setting
1569
15701.0.8 / 2011-03-01
1571==================
1572
1573 * Allow `req.query` to be pre-defined (via middleware or other parent app)
1574 * "connect": ">= 0.5.0 < 1.0.0". Closes #547
1575 * Removed the long deprecated __EXPRESS_ENV__ support
1576
15771.0.7 / 2011-02-07
1578==================
1579
1580 * Fixed `render()` setting inheritance.
1581 Mounted apps would not inherit "view engine"
1582
15831.0.6 / 2011-02-07
1584==================
1585
1586 * Fixed `view engine` setting bug when period is in dirname
1587
15881.0.5 / 2011-02-05
1589==================
1590
1591 * Added secret to generated app `session()` call
1592
15931.0.4 / 2011-02-05
1594==================
1595
1596 * Added `qs` dependency to _package.json_
1597 * Fixed namespaced `require()`s for latest connect support
1598
15991.0.3 / 2011-01-13
1600==================
1601
1602 * Remove unsafe characters from JSONP callback names [Ryan Grove]
1603
16041.0.2 / 2011-01-10
1605==================
1606
1607 * Removed nested require, using `connect.router`
1608
16091.0.1 / 2010-12-29
1610==================
1611
1612 * Fixed for middleware stacked via `createServer()`
1613 previously the `foo` middleware passed to `createServer(foo)`
1614 would not have access to Express methods such as `res.send()`
1615 or props like `req.query` etc.
1616
16171.0.0 / 2010-11-16
1618==================
1619
1620 * Added; deduce partial object names from the last segment.
1621 For example by default `partial('forum/post', postObject)` will
1622 give you the _post_ object, providing a meaningful default.
1623 * Added http status code string representation to `res.redirect()` body
1624 * Added; `res.redirect()` supporting _text/plain_ and _text/html_ via __Accept__.
1625 * Added `req.is()` to aid in content negotiation
1626 * Added partial local inheritance [suggested by masylum]. Closes #102
1627 providing access to parent template locals.
1628 * Added _-s, --session[s]_ flag to express(1) to add session related middleware
1629 * Added _--template_ flag to express(1) to specify the
1630 template engine to use.
1631 * Added _--css_ flag to express(1) to specify the
1632 stylesheet engine to use (or just plain css by default).
1633 * Added `app.all()` support [thanks aheckmann]
1634 * Added partial direct object support.
1635 You may now `partial('user', user)` providing the "user" local,
1636 vs previously `partial('user', { object: user })`.
1637 * Added _route-separation_ example since many people question ways
1638 to do this with CommonJS modules. Also view the _blog_ example for
1639 an alternative.
1640 * Performance; caching view path derived partial object names
1641 * Fixed partial local inheritance precedence. [reported by Nick Poulden] Closes #454
1642 * Fixed jsonp support; _text/javascript_ as per mailinglist discussion
1643
16441.0.0rc4 / 2010-10-14
1645==================
1646
1647 * Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
1648 * Added route-middleware support (very helpful, see the [docs](http://expressjs.com/guide.html#Route-Middleware))
1649 * Added _jsonp callback_ setting to enable/disable jsonp autowrapping [Dav Glass]
1650 * Added callback query check on response.send to autowrap JSON objects for simple webservice implementations [Dav Glass]
1651 * Added `partial()` support for array-like collections. Closes #434
1652 * Added support for swappable querystring parsers
1653 * Added session usage docs. Closes #443
1654 * Added dynamic helper caching. Closes #439 [suggested by maritz]
1655 * Added authentication example
1656 * Added basic Range support to `res.sendfile()` (and `res.download()` etc)
1657 * Changed; `express(1)` generated app using 2 spaces instead of 4
1658 * Default env to "development" again [aheckmann]
1659 * Removed _context_ option is no more, use "scope"
1660 * Fixed; exposing _./support_ libs to examples so they can run without installs
1661 * Fixed mvc example
1662
16631.0.0rc3 / 2010-09-20
1664==================
1665
1666 * Added confirmation for `express(1)` app generation. Closes #391
1667 * Added extending of flash formatters via `app.flashFormatters`
1668 * Added flash formatter support. Closes #411
1669 * Added streaming support to `res.sendfile()` using `sys.pump()` when >= "stream threshold"
1670 * Added _stream threshold_ setting for `res.sendfile()`
1671 * Added `res.send()` __HEAD__ support
1672 * Added `res.clearCookie()`
1673 * Added `res.cookie()`
1674 * Added `res.render()` headers option
1675 * Added `res.redirect()` response bodies
1676 * Added `res.render()` status option support. Closes #425 [thanks aheckmann]
1677 * Fixed `res.sendfile()` responding with 403 on malicious path
1678 * Fixed `res.download()` bug; when an error occurs remove _Content-Disposition_
1679 * Fixed; mounted apps settings now inherit from parent app [aheckmann]
1680 * Fixed; stripping Content-Length / Content-Type when 204
1681 * Fixed `res.send()` 204. Closes #419
1682 * Fixed multiple _Set-Cookie_ headers via `res.header()`. Closes #402
1683 * Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
1684
1685
16861.0.0rc2 / 2010-08-17
1687==================
1688
1689 * Added `app.register()` for template engine mapping. Closes #390
1690 * Added `res.render()` callback support as second argument (no options)
1691 * Added callback support to `res.download()`
1692 * Added callback support for `res.sendfile()`
1693 * Added support for middleware access via `express.middlewareName()` vs `connect.middlewareName()`
1694 * Added "partials" setting to docs
1695 * Added default expresso tests to `express(1)` generated app. Closes #384
1696 * Fixed `res.sendfile()` error handling, defer via `next()`
1697 * Fixed `res.render()` callback when a layout is used [thanks guillermo]
1698 * Fixed; `make install` creating ~/.node_libraries when not present
1699 * Fixed issue preventing error handlers from being defined anywhere. Closes #387
1700
17011.0.0rc / 2010-07-28
1702==================
1703
1704 * Added mounted hook. Closes #369
1705 * Added connect dependency to _package.json_
1706
1707 * Removed "reload views" setting and support code
1708 development env never caches, production always caches.
1709
1710 * Removed _param_ in route callbacks, signature is now
1711 simply (req, res, next), previously (req, res, params, next).
1712 Use _req.params_ for path captures, _req.query_ for GET params.
1713
1714 * Fixed "home" setting
1715 * Fixed middleware/router precedence issue. Closes #366
1716 * Fixed; _configure()_ callbacks called immediately. Closes #368
1717
17181.0.0beta2 / 2010-07-23
1719==================
1720
1721 * Added more examples
1722 * Added; exporting `Server` constructor
1723 * Added `Server#helpers()` for view locals
1724 * Added `Server#dynamicHelpers()` for dynamic view locals. Closes #349
1725 * Added support for absolute view paths
1726 * Added; _home_ setting defaults to `Server#route` for mounted apps. Closes #363
1727 * Added Guillermo Rauch to the contributor list
1728 * Added support for "as" for non-collection partials. Closes #341
1729 * Fixed _install.sh_, ensuring _~/.node_libraries_ exists. Closes #362 [thanks jf]
1730 * Fixed `res.render()` exceptions, now passed to `next()` when no callback is given [thanks guillermo]
1731 * Fixed instanceof `Array` checks, now `Array.isArray()`
1732 * Fixed express(1) expansion of public dirs. Closes #348
1733 * Fixed middleware precedence. Closes #345
1734 * Fixed view watcher, now async [thanks aheckmann]
1735
17361.0.0beta / 2010-07-15
1737==================
1738
1739 * Re-write
1740 - much faster
1741 - much lighter
1742 - Check [ExpressJS.com](http://expressjs.com) for migration guide and updated docs
1743
17440.14.0 / 2010-06-15
1745==================
1746
1747 * Utilize relative requires
1748 * Added Static bufferSize option [aheckmann]
1749 * Fixed caching of view and partial subdirectories [aheckmann]
1750 * Fixed mime.type() comments now that ".ext" is not supported
1751 * Updated haml submodule
1752 * Updated class submodule
1753 * Removed bin/express
1754
17550.13.0 / 2010-06-01
1756==================
1757
1758 * Added node v0.1.97 compatibility
1759 * Added support for deleting cookies via Request#cookie('key', null)
1760 * Updated haml submodule
1761 * Fixed not-found page, now using using charset utf-8
1762 * Fixed show-exceptions page, now using using charset utf-8
1763 * Fixed view support due to fs.readFile Buffers
1764 * Changed; mime.type() no longer accepts ".type" due to node extname() changes
1765
17660.12.0 / 2010-05-22
1767==================
1768
1769 * Added node v0.1.96 compatibility
1770 * Added view `helpers` export which act as additional local variables
1771 * Updated haml submodule
1772 * Changed ETag; removed inode, modified time only
1773 * Fixed LF to CRLF for setting multiple cookies
1774 * Fixed cookie complation; values are now urlencoded
1775 * Fixed cookies parsing; accepts quoted values and url escaped cookies
1776
17770.11.0 / 2010-05-06
1778==================
1779
1780 * Added support for layouts using different engines
1781 - this.render('page.html.haml', { layout: 'super-cool-layout.html.ejs' })
1782 - this.render('page.html.haml', { layout: 'foo' }) // assumes 'foo.html.haml'
1783 - this.render('page.html.haml', { layout: false }) // no layout
1784 * Updated ext submodule
1785 * Updated haml submodule
1786 * Fixed EJS partial support by passing along the context. Issue #307
1787
17880.10.1 / 2010-05-03
1789==================
1790
1791 * Fixed binary uploads.
1792
17930.10.0 / 2010-04-30
1794==================
1795
1796 * Added charset support via Request#charset (automatically assigned to 'UTF-8' when respond()'s
1797 encoding is set to 'utf8' or 'utf-8'.
1798 * Added "encoding" option to Request#render(). Closes #299
1799 * Added "dump exceptions" setting, which is enabled by default.
1800 * Added simple ejs template engine support
1801 * Added error reponse support for text/plain, application/json. Closes #297
1802 * Added callback function param to Request#error()
1803 * Added Request#sendHead()
1804 * Added Request#stream()
1805 * Added support for Request#respond(304, null) for empty response bodies
1806 * Added ETag support to Request#sendfile()
1807 * Added options to Request#sendfile(), passed to fs.createReadStream()
1808 * Added filename arg to Request#download()
1809 * Performance enhanced due to pre-reversing plugins so that plugins.reverse() is not called on each request
1810 * Performance enhanced by preventing several calls to toLowerCase() in Router#match()
1811 * Changed; Request#sendfile() now streams
1812 * Changed; Renamed Request#halt() to Request#respond(). Closes #289
1813 * Changed; Using sys.inspect() instead of JSON.encode() for error output
1814 * Changed; run() returns the http.Server instance. Closes #298
1815 * Changed; Defaulting Server#host to null (INADDR_ANY)
1816 * Changed; Logger "common" format scale of 0.4f
1817 * Removed Logger "request" format
1818 * Fixed; Catching ENOENT in view caching, preventing error when "views/partials" is not found
1819 * Fixed several issues with http client
1820 * Fixed Logger Content-Length output
1821 * Fixed bug preventing Opera from retaining the generated session id. Closes #292
1822
18230.9.0 / 2010-04-14
1824==================
1825
1826 * Added DSL level error() route support
1827 * Added DSL level notFound() route support
1828 * Added Request#error()
1829 * Added Request#notFound()
1830 * Added Request#render() callback function. Closes #258
1831 * Added "max upload size" setting
1832 * Added "magic" variables to collection partials (\_\_index\_\_, \_\_length\_\_, \_\_isFirst\_\_, \_\_isLast\_\_). Closes #254
1833 * Added [haml.js](http://github.com/visionmedia/haml.js) submodule; removed haml-js
1834 * Added callback function support to Request#halt() as 3rd/4th arg
1835 * Added preprocessing of route param wildcards using param(). Closes #251
1836 * Added view partial support (with collections etc)
1837 * Fixed bug preventing falsey params (such as ?page=0). Closes #286
1838 * Fixed setting of multiple cookies. Closes #199
1839 * Changed; view naming convention is now NAME.TYPE.ENGINE (for example page.html.haml)
1840 * Changed; session cookie is now httpOnly
1841 * Changed; Request is no longer global
1842 * Changed; Event is no longer global
1843 * Changed; "sys" module is no longer global
1844 * Changed; moved Request#download to Static plugin where it belongs
1845 * Changed; Request instance created before body parsing. Closes #262
1846 * Changed; Pre-caching views in memory when "cache view contents" is enabled. Closes #253
1847 * Changed; Pre-caching view partials in memory when "cache view partials" is enabled
1848 * Updated support to node --version 0.1.90
1849 * Updated dependencies
1850 * Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
1851 * Removed utils.mixin(); use Object#mergeDeep()
1852
18530.8.0 / 2010-03-19
1854==================
1855
1856 * Added coffeescript example app. Closes #242
1857 * Changed; cache api now async friendly. Closes #240
1858 * Removed deprecated 'express/static' support. Use 'express/plugins/static'
1859
18600.7.6 / 2010-03-19
1861==================
1862
1863 * Added Request#isXHR. Closes #229
1864 * Added `make install` (for the executable)
1865 * Added `express` executable for setting up simple app templates
1866 * Added "GET /public/*" to Static plugin, defaulting to <root>/public
1867 * Added Static plugin
1868 * Fixed; Request#render() only calls cache.get() once
1869 * Fixed; Namespacing View caches with "view:"
1870 * Fixed; Namespacing Static caches with "static:"
1871 * Fixed; Both example apps now use the Static plugin
1872 * Fixed set("views"). Closes #239
1873 * Fixed missing space for combined log format
1874 * Deprecated Request#sendfile() and 'express/static'
1875 * Removed Server#running
1876
18770.7.5 / 2010-03-16
1878==================
1879
1880 * Added Request#flash() support without args, now returns all flashes
1881 * Updated ext submodule
1882
18830.7.4 / 2010-03-16
1884==================
1885
1886 * Fixed session reaper
1887 * Changed; class.js replacing js-oo Class implementation (quite a bit faster, no browser cruft)
1888
18890.7.3 / 2010-03-16
1890==================
1891
1892 * Added package.json
1893 * Fixed requiring of haml / sass due to kiwi removal
1894
18950.7.2 / 2010-03-16
1896==================
1897
1898 * Fixed GIT submodules (HAH!)
1899
19000.7.1 / 2010-03-16
1901==================
1902
1903 * Changed; Express now using submodules again until a PM is adopted
1904 * Changed; chat example using millisecond conversions from ext
1905
19060.7.0 / 2010-03-15
1907==================
1908
1909 * Added Request#pass() support (finds the next matching route, or the given path)
1910 * Added Logger plugin (default "common" format replaces CommonLogger)
1911 * Removed Profiler plugin
1912 * Removed CommonLogger plugin
1913
19140.6.0 / 2010-03-11
1915==================
1916
1917 * Added seed.yml for kiwi package management support
1918 * Added HTTP client query string support when method is GET. Closes #205
1919
1920 * Added support for arbitrary view engines.
1921 For example "foo.engine.html" will now require('engine'),
1922 the exports from this module are cached after the first require().
1923
1924 * Added async plugin support
1925
1926 * Removed usage of RESTful route funcs as http client
1927 get() etc, use http.get() and friends
1928
1929 * Removed custom exceptions
1930
19310.5.0 / 2010-03-10
1932==================
1933
1934 * Added ext dependency (library of js extensions)
1935 * Removed extname() / basename() utils. Use path module
1936 * Removed toArray() util. Use arguments.values
1937 * Removed escapeRegexp() util. Use RegExp.escape()
1938 * Removed process.mixin() dependency. Use utils.mixin()
1939 * Removed Collection
1940 * Removed ElementCollection
1941 * Shameless self promotion of ebook "Advanced JavaScript" (http://dev-mag.com) ;)
1942
19430.4.0 / 2010-02-11
1944==================
1945
1946 * Added flash() example to sample upload app
1947 * Added high level restful http client module (express/http)
1948 * Changed; RESTful route functions double as HTTP clients. Closes #69
1949 * Changed; throwing error when routes are added at runtime
1950 * Changed; defaulting render() context to the current Request. Closes #197
1951 * Updated haml submodule
1952
19530.3.0 / 2010-02-11
1954==================
1955
1956 * Updated haml / sass submodules. Closes #200
1957 * Added flash message support. Closes #64
1958 * Added accepts() now allows multiple args. fixes #117
1959 * Added support for plugins to halt. Closes #189
1960 * Added alternate layout support. Closes #119
1961 * Removed Route#run(). Closes #188
1962 * Fixed broken specs due to use(Cookie) missing
1963
19640.2.1 / 2010-02-05
1965==================
1966
1967 * Added "plot" format option for Profiler (for gnuplot processing)
1968 * Added request number to Profiler plugin
1969 * Fixed binary encoding for multi-part file uploads, was previously defaulting to UTF8
1970 * Fixed issue with routes not firing when not files are present. Closes #184
1971 * Fixed process.Promise -> events.Promise
1972
19730.2.0 / 2010-02-03
1974==================
1975
1976 * Added parseParam() support for name[] etc. (allows for file inputs with "multiple" attr) Closes #180
1977 * Added Both Cache and Session option "reapInterval" may be "reapEvery". Closes #174
1978 * Added expiration support to cache api with reaper. Closes #133
1979 * Added cache Store.Memory#reap()
1980 * Added Cache; cache api now uses first class Cache instances
1981 * Added abstract session Store. Closes #172
1982 * Changed; cache Memory.Store#get() utilizing Collection
1983 * Renamed MemoryStore -> Store.Memory
1984 * Fixed use() of the same plugin several time will always use latest options. Closes #176
1985
19860.1.0 / 2010-02-03
1987==================
1988
1989 * Changed; Hooks (before / after) pass request as arg as well as evaluated in their context
1990 * Updated node support to 0.1.27 Closes #169
1991 * Updated dirname(__filename) -> __dirname
1992 * Updated libxmljs support to v0.2.0
1993 * Added session support with memory store / reaping
1994 * Added quick uid() helper
1995 * Added multi-part upload support
1996 * Added Sass.js support / submodule
1997 * Added production env caching view contents and static files
1998 * Added static file caching. Closes #136
1999 * Added cache plugin with memory stores
2000 * Added support to StaticFile so that it works with non-textual files.
2001 * Removed dirname() helper
2002 * Removed several globals (now their modules must be required)
2003
20040.0.2 / 2010-01-10
2005==================
2006
2007 * Added view benchmarks; currently haml vs ejs
2008 * Added Request#attachment() specs. Closes #116
2009 * Added use of node's parseQuery() util. Closes #123
2010 * Added `make init` for submodules
2011 * Updated Haml
2012 * Updated sample chat app to show messages on load
2013 * Updated libxmljs parseString -> parseHtmlString
2014 * Fixed `make init` to work with older versions of git
2015 * Fixed specs can now run independant specs for those who cant build deps. Closes #127
2016 * Fixed issues introduced by the node url module changes. Closes 126.
2017 * Fixed two assertions failing due to Collection#keys() returning strings
2018 * Fixed faulty Collection#toArray() spec due to keys() returning strings
2019 * Fixed `make test` now builds libxmljs.node before testing
2020
20210.0.1 / 2010-01-03
2022==================
2023
2024 * Initial release