Compare commits

...

1859 Commits
1.0.1 ... 3.2.0

Author SHA1 Message Date
TJ Holowaychuk
0d40c65b7f Release 3.2.0 2013-04-15 12:34:41 -07:00
TJ Holowaychuk
58f2057ba7 revert cookie signature change causing session race conditions 2013-04-15 12:33:12 -07:00
TJ Holowaychuk
37179109db Revert "fix res.cookie() tests"
This reverts commit ed273448b9.
2013-04-15 12:29:42 -07:00
TJ Holowaychuk
579857cfaa fix example port 2013-04-13 10:14:23 -07:00
Caridy Patino
0b4e2df480 add "view" constructor setting to override view behaviour 2013-04-13 09:53:50 -07:00
TJ Holowaychuk
49cc1a70b1 Merge pull request #1571 from jlubawy/master
Change to crypto.pbkdf2 in Node v0.10 broke auth example
2013-04-13 09:35:11 -07:00
TJ Holowaychuk
f8a33d137a refactor 2013-04-13 09:16:15 -07:00
TJ Holowaychuk
2db135dfc7 Merge pull request #1566 from daguej/v8-context-fix
Possible fix for #1557
2013-04-13 09:14:41 -07:00
TJ Holowaychuk
99bc628ad1 fix long list params test 2013-04-13 09:07:48 -07:00
TJ Holowaychuk
5ba6c301d7 Merge pull request #1578 from Notificare/master
Correct sorting of long list of accept header
2013-04-13 09:06:09 -07:00
silentjohnny
88273a59f8 Added originalIndex to parseQuality to correctly sort long lists (v8 does unstable quicksort for length > 10) 2013-04-13 12:36:35 +02:00
TJ Holowaychuk
2e53cb72ec add req.acceptsEncoding(name) 2013-04-12 12:56:50 -07:00
TJ Holowaychuk
3b1597d79e add req.acceptedEncodings 2013-04-12 12:55:53 -07:00
TJ Holowaychuk
776ee26bc3 Release 3.1.2 2013-04-12 12:14:02 -07:00
TJ Holowaychuk
ed273448b9 fix res.cookie() tests 2013-04-12 12:13:12 -07:00
TJ Holowaychuk
4bb91b3f67 update connect 2013-04-12 12:10:48 -07:00
TJ Holowaychuk
c5f866098e update cookie-signature 2013-04-12 12:07:43 -07:00
TJ Holowaychuk
6cfd01be6b Merge branch 'master' of github.com:visionmedia/express 2013-04-11 08:42:05 -07:00
TJ Holowaychuk
53b8e25731 ocd 2013-04-11 08:36:52 -07:00
Pavel Brylov
9e684d45bc add support for custom Accept parameters 2013-04-11 08:34:10 -07:00
TJ Holowaychuk
09d9201787 Merge pull request #1575 from jsmarkus/patch-1
Changed URL of russian docs in Readme.md
2013-04-09 15:47:31 -07:00
Mark
a732d6d471 Changed URL of russian docs in Readme.md 2013-04-09 21:18:50 +03:00
Josh Lubawy
ee9d50c128 Modified hash to return base64 encoded strings. 2013-04-04 23:26:27 -07:00
TJ Holowaychuk
d1bafa0685 docs 2013-04-03 15:11:58 -07:00
TJ Holowaychuk
2604be5491 Merge branch 'master' of github.com:visionmedia/express 2013-04-03 08:26:23 -07:00
TJ Holowaychuk
c52d9cdfbe add --check-leaks for mocha 2013-04-03 08:14:11 -07:00
TJ Holowaychuk
aab6b7e721 Merge pull request #1567 from guybrush/fixTravis
fix .travis.yml
2013-04-02 14:42:06 -07:00
Patrick Pfeiffer
d13cea46d5 fix .travis.yml 2013-04-02 16:16:30 +02:00
TJ Holowaychuk
82731dae6e Merge pull request #1503 from shesek/settings-inheritance
Inherit settings from parent application using [[Prototype]]
2013-04-01 14:29:20 -07:00
TJ Holowaychuk
476fba3e8b Release 3.1.1 2013-04-01 11:25:58 -07:00
TJ Holowaychuk
a566624f2d refactor 2013-04-01 11:22:16 -07:00
TJ Holowaychuk
c6d7352f5c Merge branch 'master' of github.com:visionmedia/express 2013-04-01 11:19:02 -07:00
TJ Holowaychuk
771573be30 Merge pull request #1516 from PatternConsulting/master
Fix Dotted Relative Redirects in Applications Mounted on Nested Paths
2013-04-01 11:18:50 -07:00
TJ Holowaychuk
b7afa4f0f4 Merge pull request #1523 from thomseddon/fix-whitespace
Remove some superfluous trailing whitespace
2013-04-01 11:14:07 -07:00
TJ Holowaychuk
4a1fa58704 refactor req.host 2013-04-01 11:09:23 -07:00
TJ Holowaychuk
6654b7162c Merge branch 'master' of github.com:visionmedia/express 2013-04-01 11:07:05 -07:00
TJ Holowaychuk
f26a3cc806 Merge pull request #1564 from cdauth/master
Consider X-Forwarded-Host if proxy is trusted
2013-04-01 11:06:39 -07:00
Josh Dague
57e48c4767 Possible fix for #1557, allows routes to be created using literal regexes across V8 contexts. Removes all uses of instanceof. 2013-04-01 14:03:32 -04:00
TJ Holowaychuk
66d9a4ad43 Merge branch 'master' of github.com:visionmedia/express 2013-04-01 11:02:56 -07:00
TJ Holowaychuk
78d9c98187 update connect 2013-04-01 11:02:29 -07:00
Candid Dauth
b686ec1182 Considering X-Forwarded-Host header if proxy is trusted 2013-03-31 01:28:34 +01:00
TJ Holowaychuk
158f452b50 Merge pull request #1534 from lennym/patch-1
Made quotes consistent in generated app.js
2013-03-13 15:43:18 -07:00
TJ Holowaychuk
916acd1dd3 replace 0.6.x travis with 0.10.x 2013-03-12 17:26:24 -07:00
TJ Holowaychuk
b4f612474b Merge pull request #1540 from fern4lvarez/master
Use End-of-line Node constant
2013-03-12 17:24:36 -07:00
fern4lvarez
9a884aa9ee Use End-of-line Node constant 2013-03-12 14:02:31 +01:00
TJ Holowaychuk
db5636199e Merge pull request #1502 from qjcg/app-template-noconfigure
Remove legacy app.configure() method from app template.
2013-03-11 08:59:24 -07:00
Leonard Martin
8211562cf6 Made quotes consistent
One-off use of double quotes aggravated my OCD.
2013-03-07 11:12:22 +00:00
TJ Holowaychuk
9df93d6dec Merge pull request #1533 from shesek/old-viewcallbacks
Removed old references to viewCallbacks
2013-03-06 14:31:45 -08:00
Nadav Ivgi
1e251af8d3 Removed old references to viewCallbacks
Was part of the deprecated locals.use() functionallity
2013-03-07 00:12:50 +02:00
Thom Seddon
eed0f598a0 Remove some superfluous trailing whitespace 2013-03-01 07:47:30 +00:00
TJ Holowaychuk
ec4d4a792a Merge pull request #1519 from yawnt/master
Fix explicit .js on project creation
2013-02-28 12:16:27 -08:00
yawnt
84e745f67c [fix] add .js, fixes haibu compatibility 2013-02-26 18:19:06 +01:00
Michael Ahlers
97edb23dba See comments. 2013-02-24 18:54:17 -05:00
Michael Ahlers
856782c81c Never mind. 2013-02-24 18:47:43 -05:00
Michael Ahlers
a7266392f9 Although unrelated to #1516, this broken test case is causing headaches. (This is a reasonable fix in any case.) 2013-02-24 18:43:19 -05:00
Michael Ahlers
04b0c44bdf Test cases document this. 2013-02-24 18:05:11 -05:00
Michael Ahlers
99c9eecde5 When in Rome… 2013-02-24 18:03:29 -05:00
Michael Ahlers
4d65bbf612 Test cases for pull-request #1516. 2013-02-24 18:01:50 -05:00
Michael Ahlers
956aa0cfff This works as expected, and has limited scope. 2013-02-24 13:40:51 -05:00
Michael Ahlers
d874476f0b Proposal to allow relative redirects for applications that have been mounted at multiple paths. 2013-02-24 13:10:49 -05:00
TJ Holowaychuk
30f9805539 Merge pull request #1513 from killmenot/master
minor typo issue
2013-02-22 08:35:39 -08:00
Alexey Kucherenko
46536dee39 fixed typo 2013-02-22 15:52:42 +04:00
TJ Holowaychuk
24087d94df link to runnable 2013-02-20 09:18:42 -08:00
TJ Holowaychuk
d02df2ebd5 update connect 2013-02-19 15:50:23 -08:00
TJ Holowaychuk
16ba1f62a3 Merge branch 'master' of github.com:visionmedia/express 2013-02-13 10:56:35 -08:00
TJ Holowaychuk
684dd1a3c6 update mkdirp 2013-02-13 10:56:22 -08:00
TJ Holowaychuk
8bcdcfeedd update buffer-crc32 2013-02-13 10:55:55 -08:00
TJ Holowaychuk
3bc372aa33 Merge pull request #1505 from gravis/patch-1
Update Readme.md
2013-02-13 10:54:35 -08:00
Philippe Lafoucrière
fc1c024041 Update Readme.md
Add dependancies status badge.
The badge looks bigger than Travis, because it's using a more recent version:
https://github.com/olivierlacan/shields/
2013-02-13 15:28:31 +01:00
TJ Holowaychuk
89427228d1 typo 2013-02-08 08:42:47 -08:00
Nadav Ivgi
420225f370 inherit settings from parent application using [[Prototype]] 2013-02-08 12:58:07 +02:00
John Gosset
44a3fa6359 Remove legacy app.configure() method from app template. 2013-02-07 11:14:06 -05:00
TJ Holowaychuk
d853c833f0 Release 3.1.0 2013-01-25 20:28:58 -08:00
TJ Holowaychuk
03a796c460 Merge pull request #1478 from ericf/settings-view-engine-test
Add test for "view engine" setting with leading ".".
2013-01-24 08:33:24 -08:00
Eric Ferraiuolo
75e47f2883 Add test for "view engine" setting with leading ".". 2013-01-24 00:55:55 -05:00
TJ Holowaychuk
a4b2e48dfe refactor res.set() array support 2013-01-23 20:31:25 -08:00
TJ Holowaychuk
57cda1578d Merge pull request #1477 from gmethvin/set_array
Allow setting an array of header values in the response
2013-01-23 20:29:17 -08:00
TJ Holowaychuk
6b1d7a94ff Merge branch 'integrate' 2013-01-23 20:21:43 -08:00
TJ Holowaychuk
49abd7bec1 merge 2013-01-23 20:21:36 -08:00
TJ Holowaychuk
0ebebd80fe Merge pull request #1466 from ericf/settings-view-engine
Add full extname support to the "view engine" setting; e.g., ".jade".
2013-01-23 20:17:42 -08:00
TJ Holowaychuk
d157d47c6e add node 0.8.x to travis.yml 2013-01-23 20:16:34 -08:00
TJ Holowaychuk
e3ac2c5b02 change req.subdomain styling back 2013-01-23 20:11:14 -08:00
TJ Holowaychuk
cd54faa4af move "subdomain offset" defaulting to config 2013-01-23 20:10:29 -08:00
TJ Holowaychuk
5beb1c4e30 Merge pull request #1475 from gmethvin/subdomain_offset
Add subdomain offset setting
2013-01-23 20:09:25 -08:00
Greg Methvin
4031aaa591 Allow setting an array of header values in the response
Make setting multiple header values using an array work as expected.
If the header value is an array, coerce the values to strings instead
of the entire array.

Fixes #1419.
2013-01-22 18:32:22 -08:00
Greg Methvin
ba00e23630 Add subdomain offset setting
Add a setting "subdomain offset" for the app, which can be used to
change the behavior of req.subdomains. This is useful when our "base"
domain contains more than two parts, e.g. example.co.uk, and also
when we are running locally with domains like xxx.local.

The default behavior is still to return all but the last two parts.
2013-01-20 19:27:58 -08:00
TJ Holowaychuk
8beb1f21ef change prev commit to use app.enabled() 2013-01-18 14:38:50 -08:00
TJ Holowaychuk
fa8eec449b use app.get() for x-powered-by setting
see: http://stackoverflow.com/questions/14285050/broke-up-express-app-into-submodules-now-my-custom-x-powered-by-does-not-wor
2013-01-18 14:36:52 -08:00
TJ Holowaychuk
ab75fa048e refactor vhost example 2013-01-14 09:51:56 +01:00
TJ Holowaychuk
bb29da5980 refactor vhost example 2013-01-13 11:32:53 -08:00
Julian Gruber
a4d7b75129 implemented res.location 2013-01-13 16:07:11 +01:00
Eric Ferraiuolo
0fdceb3de3 Add full extname support to the "view engine" setting; e.g., ".jade".
This allows View to support a `defaultEngine` (a.k.a. an app's
"view engine" setting) which contains a ".", for example:

```
app.engine('.jade', jadeEngine);
app.set('view engine', '.jade');
```

This brings View's handling of template filename extensions to parity
with `app.engine()`.

This allows an app's "view engine" setting to be a full extension name,
including the ".".
2013-01-10 21:41:24 -05:00
TJ Holowaychuk
480d0064e1 Merge pull request #1462 from gmethvin/colon_auth
Allow colons in passwords for req.auth
2013-01-09 12:47:29 -08:00
Greg Methvin
17bf04d1ef Allow colons in passwords for req.auth
Passwords in basic auth can contain colons (as per RFC2617), while
usernames cannot, so assume everything after the colon is a password.
This makes req.auth return the correct value if the user uses a colon
in his password.
2013-01-06 03:02:40 -05:00
TJ Holowaychuk
3ab30210a2 Release 3.0.6 2013-01-04 18:52:04 -08:00
TJ Holowaychuk
14fcfdee7e update connect 2013-01-04 18:37:21 -08:00
TJ Holowaychuk
d4e56c1fa2 Merge pull request #1458 from gmethvin/cookie_options
Don't mangle the options object in res.cookie
2013-01-03 12:25:57 -08:00
Greg Methvin
39ee6f8e79 Don't mangle the options object in res.cookie
Make a copy of the cookie options before mutating it to pass to
cookie.serialize. This prevents unexpected things from happening when
we try to use the same options object multiple times.

Also add a test to verify that the options object does not change
after a request is made.
2013-01-03 02:00:15 -05:00
TJ Holowaychuk
8d21f1e45c change router callback check error message
to read:

Error: .get() requires callback functions but got a [object String]
2012-12-29 08:52:33 -07:00
TJ Holowaychuk
618484a4fe Merge pull request #1454 from shtylman/router-http-methods
add http verbs methods to Router
2012-12-28 09:30:20 -08:00
Guillermo Rauch
64a234958a fix jsonp whitespace escape. Closes #1132 2012-12-28 10:24:55 -07:00
Roman Shtylman
e4907ce8e8 add http verbs methods to Router
By having the method verbs available on the router, users can set up
disjoint routers and organized paths easier.

It is now possible to have a .js file export the router.middleware and
attach these paths using an `app.use('/path', middleware)` call. This
means that any routes written in the separate file do not need to have a
full path hardcoded as they can be mounted by the application anywhere.

This is already possible using `router.route(verb, args)` however is
needlessly verbose without this patch.
2012-12-25 16:43:56 -05:00
TJ Holowaychuk
33eaa8329c Release 3.0.5 2012-12-19 13:46:16 -08:00
TJ Holowaychuk
3c4fd57e51 Merge pull request #1451 from aweeks/fix-304-must-not-contain-body
Explicitly remove Transfer-Encoding header from 204 and 304 responses
2012-12-19 13:34:16 -08:00
Alex Weeks
a1e42ac33f Explicitly remove Transfer-Encoding header from 204 and 304 responses
Per RFC 2616 §10.3.6 & §10.2.5 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) "The [204/304] response MUST NOT contain a message-body, and thus is always terminated by the first empty line after the header fields."
2012-12-19 10:53:17 -08:00
Thorsten Lorenz
ce7d7bfd8d add throwing when a non-function is passed to a route 2012-12-14 15:06:17 -08:00
TJ Holowaychuk
9bd86cdddc Revert "add 'etag' option"
This reverts commit 6f6eec7d8d.
2012-12-06 15:15:49 -08:00
TJ Holowaychuk
0117464ac2 Release 3.0.4 2012-12-05 17:10:59 -08:00
Max Riveiro
6f6eec7d8d add 'etag' option 2012-12-05 16:49:09 -08:00
TJ Holowaychuk
a4e93c0fb8 update connect 2012-12-05 16:35:44 -08:00
TJ Holowaychuk
e2ad0d3d6e merge 2012-11-21 08:46:36 -08:00
TJ Holowaychuk
763be5e631 Merge pull request #1426 from piscis/master
change crc generator because of license issue
2012-11-21 08:45:42 -08:00
TJ Holowaychuk
c8526932f3 Merge branch 'master' of github.com:visionmedia/express 2012-11-21 08:43:13 -08:00
TJ Holowaychuk
5cf29a3d29 Merge pull request #1425 from gmethvin/encode_text_redirect
Escape URLs in text/plain res.redirect response
2012-11-21 08:42:33 -08:00
Alexander Pirsig
18a3cc03ee use buffer-crc32 module for ETag CRC generator 2012-11-21 12:44:07 +01:00
Greg Methvin
ea5e254c7d Escape URLs in text/plain res.redirect response
Escape the URL printed by res.redirect using URL encoding. This
prevents some browsers (primarily old versions of IE) from attempting
to sniff the Content-Type and evaluate it as HTML, which causes a
cross-site scripting vulnerability.
2012-11-21 02:22:37 -05:00
TJ Holowaychuk
060653bd4c Merge branch 'master' of github.com:visionmedia/express 2012-11-20 14:25:30 -08:00
TJ Holowaychuk
b709009bc9 Release 3.0.3 2012-11-13 09:14:13 -08:00
TJ Holowaychuk
b80d7ec257 update connect 2012-11-13 09:12:47 -08:00
TJ Holowaychuk
ff0384e610 update cookie module 2012-11-13 09:12:32 -08:00
TJ Holowaychuk
ab9c275bde fix cookie max-age
the cookie module we depend on never used to
set this value, however now it does :)
2012-11-13 09:08:37 -08:00
TJ Holowaychuk
c70db96b06 Update examples/cors/index.js 2012-11-08 13:52:20 -08:00
TJ Holowaychuk
1c616e29e2 Merge branch 'master' of github.com:visionmedia/express 2012-11-08 09:20:29 -08:00
TJ Holowaychuk
cb7518435f Merge pull request #1406 from DmitryBochkarev/patch-1
remove connect.static.send import from response.js
2012-11-08 09:20:20 -08:00
TJ Holowaychuk
79f81c0a25 Merge pull request #1408 from Laboratory/master
delete unused variables
2012-11-08 09:20:08 -08:00
TJ Holowaychuk
72b9e48331 Release 3.0.2 2012-11-08 09:15:59 -08:00
TJ Holowaychuk
eba6aa1767 fix .version 2012-11-08 09:15:24 -08:00
Vitaly
534fbdb307 delete unused variables 2012-11-08 17:07:08 +04:00
Dmitry Bochkarev
6b309a4457 remove connect.static.send import from response.js 2012-11-08 12:43:38 +05:00
TJ Holowaychuk
af5e38c31a Update Readme.md 2012-11-05 09:10:34 -08:00
TJ Holowaychuk
4283f38698 add OPTIONS to cors example. Closes #1398 2012-11-04 13:21:55 -08:00
TJ Holowaychuk
2d49c0d1f3 Merge branch 'master' of github.com:visionmedia/express 2012-11-04 12:28:53 -08:00
TJ Holowaychuk
a7ca3817db fix route chaining regression. Closes #1397 2012-11-04 12:28:35 -08:00
TJ Holowaychuk
1f044547ee Release 3.0.1 2012-11-01 17:27:53 -07:00
TJ Holowaychuk
612fc47044 update connect 2012-11-01 17:27:33 -07:00
TJ Holowaychuk
8959ff155b Merge pull request #1388 from shtylman/unused-variables
remove unused variables
2012-10-27 13:10:14 -07:00
Roman Shtylman
dadf57cc8b remove unused variables
Tests and examples with unused variables are unchanged.
2012-10-27 16:04:00 -04:00
TJ Holowaychuk
764b6c61d9 Merge pull request #1387 from valllabh/patch-1
Update Readme.md
2012-10-26 06:44:53 -07:00
vallabh
582dadf787 Update Readme.md
Text alignment in Contributors list
2012-10-26 12:24:01 +05:30
TJ Holowaychuk
12d97169d7 Release 3.0.0 2012-10-23 15:29:20 -07:00
TJ Holowaychuk
c29cfa823d change res.redirect() to utilize a pathname-relative Location again. Closes #1382
nginx does not seem to set Host correctly,
though Location should be relative as per RFC
myself nor anyone else can report a client
that does not handle relative correctly so
this will be fine until then
2012-10-23 14:08:18 -07:00
TJ Holowaychuk
e183a9694e add make clean 2012-10-19 11:47:36 -07:00
TJ Holowaychuk
d6cb449011 add "Basic" check to req.auth 2012-10-19 11:46:46 -07:00
TJ Holowaychuk
7bf4ad30fc add req.auth test coverage 2012-10-19 11:44:44 -07:00
TJ Holowaychuk
b3936b96e5 add cb && cb(payload) to res.jsonp(). Closes #1374 2012-10-16 11:57:37 -07:00
TJ Holowaychuk
44d0625e91 fix view-locals example. Closes #1370
this was from 2x, doesnt need to be there at all
2012-10-15 16:07:56 -07:00
TJ Holowaychuk
c492cde048 Merge branch 'examples' 2012-10-09 19:31:56 -07:00
TJ Holowaychuk
c2fa6cc94d fix route-separation example 2012-10-09 19:31:52 -07:00
TJ Holowaychuk
464608025b refactor ejs example some more 2012-10-09 19:26:55 -07:00
TJ Holowaychuk
d653d2308b refactor ejs example 2012-10-09 19:26:17 -07:00
TJ Holowaychuk
a52b1f121c add EJS title example to auth 2012-10-09 19:21:50 -07:00
TJ Holowaychuk
9edd8be520 remove user footer info from auth example
looks a little weird
2012-10-09 19:20:30 -07:00
TJ Holowaychuk
aa1d47600a fix auth example acceptance tests 2012-10-09 19:19:54 -07:00
sakateka
be7ec8b40e improved ejs Example 2012-10-09 19:16:54 -07:00
sakateka
8e12dd9c17 Checked all the examples 2012-10-09 19:16:54 -07:00
TJ Holowaychuk
fee0f0dce0 Merge branch 'error-handling-routes' 2012-10-09 19:09:21 -07:00
TJ Holowaychuk
0dd80e7b50 refactor routes.error tests 2012-10-09 19:09:12 -07:00
TJ Holowaychuk
78d5b72081 rename a test file 2012-10-09 19:06:23 -07:00
Sean Soong
e0df865401 make application routing callback behave the same as middleware, fix logic and add test code 2012-10-09 19:05:30 -07:00
Sean Soong
2abcbed67a make application routing callback behave the same as middleware 2012-10-09 19:05:30 -07:00
TJ Holowaychuk
02b9d0b2e6 fix express.mime reference, should be connect.mime 2012-10-09 18:59:44 -07:00
TJ Holowaychuk
927e181db7 update connect 2012-10-09 18:56:47 -07:00
TJ Holowaychuk
dc411b3175 Merge pull request #1364 from isaacs/patch-1
package.json: Remove publishConfig field
2012-10-09 08:43:37 -07:00
Isaac Z. Schlueter
1e870f0f0d package.json: Remove publishConfig field
Fixes #1359
2012-10-09 08:14:36 -07:00
TJ Holowaychuk
3cd01598a5 Merge pull request #1355 from lihanli/view-cache-test
set the NODE_ENV to development for the development view cache test
2012-10-06 15:25:07 -07:00
lihan
3b6d683b7f set the NODE_ENV to development for the development view cache test 2012-10-06 17:58:17 -04:00
TJ Holowaychuk
eeef763f6d Merge branch 'master' of github.com:visionmedia/express 2012-10-06 09:58:27 -07:00
TJ Holowaychuk
76d3ec583d move default of "views" out so multiple cwd() calls are not made 2012-10-06 09:58:17 -07:00
TJ Holowaychuk
077d8b9247 Merge pull request #1354 from sakateka/master
examples/auth/app.js
2012-10-05 09:17:18 -07:00
sakateka
92840b9f68 Fixed: notify of a successful auth. 2012-10-05 12:23:11 +04:00
TJ Holowaychuk
bf60d5a041 update connect 2012-09-27 12:39:26 -07:00
TJ Holowaychuk
56ffab045e add backwards compat for res.redirect() status. Closes #1336 2012-09-26 09:07:22 -07:00
TJ Holowaychuk
496ee401d7 Merge branch 'master' of github.com:visionmedia/express 2012-09-26 09:04:35 -07:00
TJ Holowaychuk
f0d5b3b368 remove non-primitive string support for res.send()
kinda silly.. valueOf() before if you happen to use
boxed strings, otherwise it is unfair that dont support
other boxed primitives all over, and quite frankly no one does
2012-09-26 09:04:26 -07:00
TJ Holowaychuk
88072a56ea refactor 2012-09-26 09:01:55 -07:00
TJ Holowaychuk
0d3a637389 add support for res.json() to retain previously defined Content-Types. Closes #1349 2012-09-26 09:00:52 -07:00
TJ Holowaychuk
dc44f3c226 Update Readme.md 2012-09-25 13:55:57 -07:00
TJ Holowaychuk
1029b0b97f adjust locals tests 2012-09-25 08:45:09 -07:00
TJ Holowaychuk
84f8228b8c update send 2012-09-19 11:37:46 -07:00
TJ Holowaychuk
968e8f0121 Release 3.0.0rc5 2012-09-18 11:48:20 -07:00
TJ Holowaychuk
9eb1da4568 update connect 2012-09-18 11:44:50 -07:00
TJ Holowaychuk
315e79e9f0 add redis search example 2012-09-18 09:31:12 -07:00
TJ Holowaychuk
363d0d4f41 Merge branch 'master' of github.com:visionmedia/express 2012-09-13 09:52:46 -07:00
TJ Holowaychuk
5ac631a270 add "x-powered-by" setting 2012-09-13 09:52:35 -07:00
TJ Holowaychuk
75fc882001 Merge pull request #1319 from pyrotechnick/patch-1
typo
2012-09-04 12:50:46 -07:00
Nicholas Kinsey
d7cb213eeb Update lib/application.js
typo: http -> https
2012-09-05 05:20:37 +10:00
TJ Holowaychuk
568e0d297a add "application/octet-stream" redirect Accept test case. Closes #1317 2012-09-03 16:17:49 -07:00
TJ Holowaychuk
8edf358739 refactor res.format(), dont pass "default" to req.accepts() 2012-09-03 16:16:46 -07:00
TJ Holowaychuk
40be3ed05d update connect dep 2012-09-03 14:49:46 -07:00
TJ Holowaychuk
2c174d6b3b add app.router to static-files example 2012-09-03 08:54:39 -07:00
TJ Holowaychuk
60ee465bf7 add static-files example
point people here if they have
problems with serving static files
2012-09-03 08:52:53 -07:00
TJ Holowaychuk
51210d6b95 Release 3.0.0rc4 2012-08-30 22:13:38 -07:00
TJ Holowaychuk
a6caa267bd add res.jsonp(). Closes #1307
this also removes the jsonp
2012-08-30 09:29:43 -07:00
TJ Holowaychuk
cdb3e9dc0d fix etag quoting. Closes #1310 2012-08-30 08:49:48 -07:00
TJ Holowaychuk
f2f09767fb add etag util 2012-08-30 08:27:57 -07:00
TJ Holowaychuk
eec31d7126 fix acceptance tests 2012-08-29 10:47:29 -07:00
TJ Holowaychuk
3c5ad753b6 add "verbose errors" option to error-pages example 2012-08-29 10:46:52 -07:00
TJ Holowaychuk
dd338b5567 Merge pull request #1309 from nickjj/patch-1
fix error-pages 404 status
2012-08-29 10:42:42 -07:00
nickjj
1b15af713c fix error-pages 404 status 2012-08-29 14:31:13 -03:00
TJ Holowaychuk
89c5affc3b fix jsonp callback char restrictions 2012-08-28 18:11:49 -07:00
TJ Holowaychuk
2bba69f633 remove old OPTIONS default response
relatively useless since its so non-informative,
let me know if anyone has an objection to this,
i think its best to define these for your API
2012-08-28 17:24:52 -07:00
TJ Holowaychuk
4403f136b7 add another route example to express(1) so people are not so confused 2012-08-28 16:18:00 -07:00
TJ Holowaychuk
f7c1c638bb add some comments to error-pages example 2012-08-28 10:28:58 -07:00
TJ Holowaychuk
f2d7bbe0e9 change jsonp callback default to false. Closes #1304 2012-08-28 09:08:41 -07:00
TJ Holowaychuk
87468cffce update connect dep 2012-08-21 19:09:18 -07:00
TJ Holowaychuk
3f7e3a714e drop to assert() for less crazy error message 2012-08-16 10:14:05 -07:00
TJ Holowaychuk
38a9caf159 update send 2012-08-16 10:08:55 -07:00
TJ Holowaychuk
500c8ab4b3 docs 2012-08-14 04:14:37 -07:00
TJ Holowaychuk
c4ad97d555 add redis online user activity tracking example 2012-08-14 04:13:55 -07:00
TJ Holowaychuk
b96401ac83 Release 3.0.0rc3 2012-08-13 20:23:59 -07:00
TJ Holowaychuk
32a5c9cba5 Merge pull request #1286 from tnydwrds/fix-signed-cookie-prefix
Fix signed cookie prefix
2012-08-13 20:21:36 -07:00
Tony Edwards
0217e6ce96 Fix signed cookie prefix
Update res.cookie to prefix signed cookies with 's:'
2012-08-13 20:01:17 -07:00
TJ Holowaychuk
6bebe0837f refactor res.render() to prevent clobbering "locals" 2012-08-11 15:04:54 -07:00
TJ Holowaychuk
ff1c6f0cfa rename multipart app.js to index.js 2012-08-09 20:08:03 -07:00
TJ Holowaychuk
8ac3e80bf0 Merge branch 'master' of github.com:visionmedia/express 2012-08-09 10:15:27 -07:00
TJ Holowaychuk
3923ec89f7 remove route-loading example
using vm for this is lame
2012-08-09 10:15:12 -07:00
TJ Holowaychuk
fd8ca32ab2 Merge pull request #1273 from ritch/patch-1
Removed extraneous require('http')
2012-08-09 08:46:23 -07:00
Ritchie Martori
ba2f66d765 Removed extraneous require('http') 2012-08-08 17:51:04 -07:00
TJ Holowaychuk
056c840a06 update connect dep 2012-08-07 09:10:40 -07:00
TJ Holowaychuk
20e8f08cb2 Release 3.0.0rc2 2012-08-03 13:32:53 -07:00
TJ Holowaychuk
bac0c64633 escape res.redirect() link 2012-08-02 19:41:37 -07:00
TJ Holowaychuk
48923055eb docs 2012-08-01 13:18:30 -07:00
TJ Holowaychuk
0f20a5e06a add CORS example 2012-08-01 13:17:46 -07:00
TJ Holowaychuk
56bfb9249f Merge branch 'master' of github.com:visionmedia/express 2012-07-31 20:51:07 -07:00
TJ Holowaychuk
5ed1544cab remove generated docs 2012-07-31 20:50:52 -07:00
TJ Holowaychuk
e5c7be9364 Merge pull request #1250 from silvinci/1249-mvc-boot.js-fix-rc
Fixed double inclusion of methods in mvc example
2012-07-26 12:53:06 -07:00
Jan Buschtöns
73ce9d028c Line 40 removed. Fixed! 2012-07-26 21:46:22 +02:00
TJ Holowaychuk
75debbe5bc update connect dep 2012-07-25 09:26:20 -07:00
TJ Holowaychuk
5f33d89ea5 fix vhost example 2012-07-24 15:41:12 -07:00
TJ Holowaychuk
42fd29efe8 deprecate .createServer() & remove old stale examples 2012-07-24 15:40:05 -07:00
TJ Holowaychuk
2d91eac811 Release 3.0.0rc1 2012-07-24 13:32:49 -07:00
TJ Holowaychuk
a50f02e87d update cookie dep 2012-07-24 13:30:44 -07:00
TJ Holowaychuk
214f913b0c merge 2012-07-24 13:28:13 -07:00
TJ Holowaychuk
1021c86300 update connect dep 2012-07-24 13:25:50 -07:00
TJ Holowaychuk
386516815a Merge branch 'master' of github.com:visionmedia/express 2012-07-24 09:57:00 -07:00
TJ Holowaychuk
d5e5647bba fix express(1) -h flag, use -H for hogan. Closes #1245 2012-07-24 09:56:48 -07:00
TJ Holowaychuk
a861ea7eaf Merge pull request #1243 from saintedlama/master
Fixes path joining in app stub generator on win32 systems
2012-07-24 08:46:11 -07:00
TJ Holowaychuk
cb844132e6 Merge pull request #1244 from RubenVerborgh/master
EventEmitter memory leak with successful sendfile
2012-07-24 08:36:53 -07:00
Ruben Verborgh
8050308706 Remove socket error handler if file was sent successfully. 2012-07-24 11:57:02 +02:00
Christoph Walcher
e79f72bf88 Fixes path joining in win32 systems 2012-07-24 07:18:16 +02:00
TJ Holowaychuk
07b6c9f563 update connect dep 2012-07-23 11:35:54 -07:00
TJ Holowaychuk
8f4e61a474 fix res.render docs 2012-07-20 17:22:21 -07:00
TJ Holowaychuk
54d37c60f5 add more examples to view-locals 2012-07-18 10:41:07 -07:00
TJ Holowaychuk
a93d375acc add res.redirect("//foo.com") support 2012-07-18 09:29:11 -07:00
TJ Holowaychuk
d66f0e5eb9 change res.redirect() to use scheme-relative urls 2012-07-18 09:07:21 -07:00
TJ Holowaychuk
e84db12783 update send dep 2012-07-16 19:27:53 -07:00
TJ Holowaychuk
1ad2ecefe8 Release 3.0.0beta7 2012-07-16 09:25:03 -07:00
TJ Holowaychuk
08b68ec8cd udpate connect dep 2012-07-16 09:23:40 -07:00
TJ Holowaychuk
48be9233d8 add res.download() content-disposition on error removal test 2012-07-13 09:24:09 -07:00
TJ Holowaychuk
a512d9b47d Release 3.0.0beta6 2012-07-13 09:19:24 -07:00
TJ Holowaychuk
62234cc106 clean up package.json 2012-07-13 09:00:26 -07:00
TJ Holowaychuk
ab61837885 change res.sendfile() to use send() module 2012-07-13 08:58:40 -07:00
TJ Holowaychuk
7a5041bf9c keywords 2012-07-12 12:51:29 -07:00
TJ Holowaychuk
4d219135b2 update connect dep 2012-07-12 12:03:21 -07:00
TJ Holowaychuk
26eeb64640 add err.view property for view errors. Closes #1226 2012-07-11 08:45:37 -07:00
riadh
5426eb0b62 add "jsonp callback name" setting 2012-07-06 08:53:31 -07:00
TJ Holowaychuk
b9e32ec2c4 styling 2012-07-06 08:15:28 -07:00
TJ Holowaychuk
32b8613708 fix matchRequest tests 2012-07-06 08:14:53 -07:00
TJ Holowaychuk
90eddb3439 dont .toLowerCase() twice 2012-07-06 08:12:47 -07:00
TJ Holowaychuk
accd6180c1 rename matchReq -> matchRequest 2012-07-06 08:12:33 -07:00
TJ Holowaychuk
e770b674ff Merge pull request #1212 from riadhchtara/Issue944
issue#944 : Changing Router#match() signature
2012-07-06 08:08:11 -07:00
TJ Holowaychuk
4f7c4d1051 remove app.locals.use and res.locals.use
there are a few reasons for this:

  a) less API, simpler implementation ...
  b) difficult to inherit cleanly from subapps
  c) effectively the same as parallelized middleware (use connect-parallel for example)

lastly this api in a sense promotes some obscure uses since
they may be scattered throughout rather than explicitly
given to specific routes or used globally as middleware etc
2012-07-05 18:46:19 -07:00
TJ Holowaychuk
78845e7d23 fix app.locals.use() when mounting apps 2012-07-05 18:31:02 -07:00
TJ Holowaychuk
93f1cecc92 update connect dep 2012-07-05 09:43:24 -07:00
riadh
8ccd89f6ad Update Issue944 2012-07-05 13:32:33 +03:00
riadh
0a210cce7a fix to test 2012-07-04 18:51:48 +02:00
riadhchtara
f110248462 Issue 944:
Changing Router#match() signature from (req[, i]) to (method, url[, i]), and making it public
2012-07-04 13:19:40 +02:00
TJ Holowaychuk
96e4014a70 Replace res.send() with res.send = require("response-send") 2012-07-03 21:09:17 -07:00
TJ Holowaychuk
2173d00829 whitespace ocd 2012-07-03 13:57:40 -07:00
riadh
3827f5ef8b tests for issues 1115 fix for utils 2012-07-03 13:56:21 -07:00
riadh
73bed61afa * immediately after :param would become not greedy 2012-07-03 13:56:21 -07:00
TJ Holowaychuk
ee89ff5026 Release 3.0.0beta5 2012-07-03 10:20:19 -07:00
TJ Holowaychuk
8df9e745d5 Merge branch 'master' of github.com:visionmedia/express 2012-07-03 09:39:52 -07:00
TJ Holowaychuk
c76e954504 upgrade connect dep 2012-07-03 09:30:53 -07:00
TJ Holowaychuk
136f054614 Merge pull request #1202 from strk/make_check
Add "make check" support.
2012-07-02 11:41:09 -07:00
Sandro Santilli
e9a4b4f8ff Add "make check" support.
This is to follow GNU coding stadards. See:
www.gnu.org/prep/standards/html_node/Standard-Targets.html
2012-07-02 15:45:33 +02:00
TJ Holowaychuk
5415c98ff9 add route-map tests 2012-06-30 12:18:32 -07:00
TJ Holowaychuk
39efa452fc Added route-map example 2012-06-29 09:01:06 -07:00
TJ Holowaychuk
bddcdee3fe docs 2012-06-27 13:58:35 -07:00
TJ Holowaychuk
2e8d44b444 docs 2012-06-27 13:36:12 -07:00
TJ Holowaychuk
70d68419b0 Added res.json(obj, status) support back for BC 2012-06-27 13:34:53 -07:00
TJ Holowaychuk
26fab2a27d update auth example to utilize cores pbkdf2 2012-06-27 13:20:39 -07:00
TJ Holowaychuk
0f5560eebd updated tests to use "supertest" 2012-06-26 17:14:07 -07:00
TJ Holowaychuk
170dcc2907 Added "methods" dep 2012-06-26 11:38:55 -07:00
TJ Holowaychuk
18d6c78ef4 fixed a test race condition 2012-06-25 12:42:51 -07:00
TJ Holowaychuk
1248f0338b Release 3.0.0beta4 2012-06-25 12:08:22 -07:00
TJ Holowaychuk
b400814d00 Added req.auth
tests to come
2012-06-22 16:25:31 -07:00
TJ Holowaychuk
a934929bb3 update connect dep 2012-06-22 10:48:07 -07:00
TJ Holowaychuk
140efb574c Revert "Added + support to the router"
This reverts commit 6aaa7dc26d.
2012-06-22 08:20:23 -07:00
TJ Holowaychuk
3c0c96114f Added res.send(body, status) support back for backwards compat 2012-06-21 16:37:26 -07:00
TJ Holowaychuk
362c96c8c1 refactor res.redirect() relative check 2012-06-21 08:25:43 -07:00
TJ Holowaychuk
5db3d0f9fc Merge branch 'master' of github.com:visionmedia/express 2012-06-18 09:37:37 -07:00
TJ Holowaychuk
80c814c393 Merge pull request #1182 from langpavel/patch-1
Refactoring: no need for add 'del' and 'all' to methods
2012-06-18 09:37:25 -07:00
TJ Holowaychuk
bf66465937 Merge pull request #1183 from nullfirm/master
Re: [express] add hogan.js template engine for express@3.0 (#1176)
2012-06-17 21:36:24 -07:00
Min-su Ok
72eea7e6cd modify from --hjs to --hogan. 2012-06-18 13:17:51 +09:00
TJ Holowaychuk
8f4cd13c89 docs 2012-06-17 19:00:41 -07:00
Pavel Lang
6556cefc71 Refactoring: no need for add 'del' and 'all' to methods 2012-06-18 04:55:25 +03:00
TJ Holowaychuk
7bfb58920a docs 2012-06-17 18:08:35 -07:00
TJ Holowaychuk
2e324ccf5f docs 2012-06-17 18:08:14 -07:00
TJ Holowaychuk
1a10ee76b3 update range-parser dep 2012-06-17 18:06:04 -07:00
TJ Holowaychuk
619e6349f6 ws 2012-06-17 17:48:52 -07:00
TJ Holowaychuk
b1ff68548f add inline range example 2012-06-17 17:41:28 -07:00
TJ Holowaychuk
376b6c3bad add note about inclusive ranges 2012-06-17 17:37:42 -07:00
TJ Holowaychuk
f4c8a59b17 Added req.range(size) 2012-06-17 17:33:05 -07:00
TJ Holowaychuk
e6129d8ba5 Added res.links(obj) 2012-06-17 16:34:42 -07:00
TJ Holowaychuk
d2baf11b8a docs 2012-06-17 13:21:13 -07:00
TJ Holowaychuk
82b5b12ca7 Added .default() support to res.format() 2012-06-17 13:15:55 -07:00
TJ Holowaychuk
c145ab9b81 Update mkdirp 2012-06-15 16:15:16 -07:00
TJ Holowaychuk
c10223b803 GET / HEAD only for req.fresh 2012-06-15 16:09:32 -07:00
TJ Holowaychuk
1e09b54ad2 update fresh 2012-06-15 16:07:27 -07:00
TJ Holowaychuk
d073e0aeb5 Added 2xx / 304 check to req.fresh 2012-06-15 16:03:20 -07:00
TJ Holowaychuk
ce7293de13 misc 2012-06-15 15:44:44 -07:00
TJ Holowaychuk
108e66c24b Fixed res.send() freshness check, respect res.statusCode 2012-06-15 15:42:46 -07:00
TJ Holowaychuk
f90401b8c0 Release 3.0.0beta3 2012-06-15 11:40:49 -07:00
TJ Holowaychuk
a32e705d49 Merge branch 'master' of github.com:visionmedia/express 2012-06-15 11:39:04 -07:00
TJ Holowaychuk
640cf4ca21 Changed: res.send() always checks freshness 2012-06-15 11:38:51 -07:00
TJ Holowaychuk
442e782692 Merge pull request #1176 from nullfirm/master
add hogan.js template engine for express@3.0
2012-06-15 09:01:01 -07:00
Min-su Ok
0a874ad8b3 add hogan.js template engine for express@3.0 2012-06-14 18:44:53 +09:00
Min-su Ok
18083f0c13 add hogan.js template engine for express@3.0 2012-06-14 18:44:46 +09:00
TJ Holowaychuk
f25aaf11e9 Added another example to content-negotiation 2012-06-13 17:32:44 -07:00
TJ Holowaychuk
9b09257b28 upgrade connect 2012-06-11 09:53:15 -07:00
TJ Holowaychuk
f895516a2c Added fresh dep 2012-06-10 12:21:03 -07:00
TJ Holowaychuk
76aa718b75 update markdown docs 2012-06-08 14:11:52 -07:00
TJ Holowaychuk
0acee67339 Merge branch 'master' of github.com:visionmedia/express 2012-06-08 09:47:56 -07:00
TJ Holowaychuk
4475e335ef mime export test 2012-06-08 09:47:45 -07:00
TJ Holowaychuk
895673141d Fixed: expose connects mime module. Cloases #1165 2012-06-08 09:47:13 -07:00
TJ Holowaychuk
e4cd99ae1c Merge pull request #1164 from danneu/patch-2
Removed extra "of" in `res.set` comment.
2012-06-07 08:52:04 -07:00
Dan Neumann
c39a398d83 Removed extra "of" in res.set comment. 2012-06-07 00:17:45 -05:00
TJ Holowaychuk
2787bd5bf0 Release 3.0.0beta2 2012-06-06 14:46:52 -07:00
TJ Holowaychuk
6aaa7dc26d Added + support to the router 2012-06-06 14:38:22 -07:00
TJ Holowaychuk
ebf60d2340 coerce res.cookie values to strings 2012-06-06 12:34:51 -07:00
TJ Holowaychuk
02d43846f6 fixing cookies for connect 2.3.1 2012-06-06 12:25:14 -07:00
TJ Holowaychuk
8930cd563c update connect dep 2012-06-06 12:00:35 -07:00
TJ Holowaychuk
2b90cd7d51 Added req.host 2012-06-05 19:24:49 -07:00
TJ Holowaychuk
d5fde6a4b9 added test to illustrate req.params as an array 2012-06-05 19:02:28 -07:00
TJ Holowaychuk
99b2e0fa08 refactored req.param() 2012-06-05 18:59:26 -07:00
TJ Holowaychuk
ebcb1ca90e Changed req.param() to check route first
body / query-string taking precedence is a little sketchy
but you should use this method sparingly, think of it
as PHPs $_REQUEST
2012-06-05 18:51:42 -07:00
TJ Holowaychuk
1763b073f9 docs 2012-06-04 09:48:19 -07:00
TJ Holowaychuk
908e467548 docs 2012-06-02 20:04:51 -07:00
TJ Holowaychuk
3c6ad5350b Release 3.0.0beta1 2012-06-01 12:27:19 -07:00
TJ Holowaychuk
0ff3aa4b20 update deps 2012-06-01 12:24:17 -07:00
TJ Holowaychuk
fd42b5c42c mention res.format() callback 2012-06-01 09:15:35 -07:00
TJ Holowaychuk
1311f2ac25 Fixed res.redirect() 406. Closes #1154 2012-06-01 09:14:27 -07:00
TJ Holowaychuk
82a9817061 Release 3.0.0alpha5 2012-05-30 16:48:22 -07:00
TJ Holowaychuk
685eec0149 assertion for req.get() => undefined. Closes #1152 2012-05-30 14:25:43 -07:00
TJ Holowaychuk
910dae16ab misc refactor 2012-05-29 18:51:08 -07:00
TJ Holowaychuk
fd53197b46 Added req.ip tests 2012-05-29 18:46:37 -07:00
TJ Holowaychuk
d84d0b69ef Added req.ip 2012-05-29 18:46:07 -07:00
TJ Holowaychuk
b694ba27be Changed: dont reverse req.ips
parse them as-is. im impartial about
the ordering but this spares some CPU. if you
prefer the other way let me know
2012-05-29 18:41:00 -07:00
TJ Holowaychuk
e3cbac2d77 Fixed setting check for req.ips 2012-05-29 18:36:46 -07:00
TJ Holowaychuk
bbaa295ee2 Merge branch 'master' of github.com:visionmedia/express 2012-05-27 11:53:06 -07:00
TJ Holowaychuk
1150a88001 Added { signed: true } option to res.cookie() 2012-05-27 11:51:32 -07:00
TJ Holowaychuk
58cfd60000 moved executable css middleware lower 2012-05-21 20:40:49 -03:00
TJ Holowaychuk
fcf268742d update commander 2012-05-16 21:34:29 -03:00
TJ Holowaychuk
30d71c8f8f ocd 2012-05-14 08:49:37 -07:00
TJ Holowaychuk
c3f9398b12 Merge pull request #1135 from adrianolaru/jade-default-doctype
Changed jade default doctype to html5
2012-05-12 06:32:38 -07:00
Adrian Olaru
f1ac6ab764 changed jade default doctype to html5 2012-05-12 16:19:02 +03:00
TJ Holowaychuk
d6ca5f71bc Added test for res.sendfile() express.static() options 2012-05-10 18:00:41 -07:00
TJ Holowaychuk
cdca9cf88f Added res.download() body test 2012-05-10 17:15:50 -07:00
TJ Holowaychuk
5840b42f4a Added res.download() tests 2012-05-10 17:11:43 -07:00
TJ Holowaychuk
a5be68b5b2 refactored res.get() tests 2012-05-10 13:59:27 -07:00
TJ Holowaychuk
9fda13bc25 Added url rewriting test 2012-05-10 13:13:03 -07:00
TJ Holowaychuk
125dd7a594 Prepared release 3.0.0alpha4 2012-05-09 15:18:21 -07:00
TJ Holowaychuk
df2584cc3b Added: allow [] in jsonp callback. Closes #1128 2012-05-09 09:39:52 -07:00
TJ Holowaychuk
4de95c0e7b connect 2.2.2 2012-05-07 13:58:17 -07:00
TJ Holowaychuk
9ed1f2a446 Removed blog example
need a better one
2012-05-07 12:52:56 -07:00
TJ Holowaychuk
833a4873a4 misc refactor of blog example 2012-05-07 12:44:03 -07:00
TJ Holowaychuk
6ca1807372 Merge branch 'master' of github.com:visionmedia/express 2012-05-07 12:01:19 -07:00
TJ Holowaychuk
9da3e9ccc7 Merge pull request #1127 from benatkin/template-port-from-env
get port from env in template (fix for #1118)
2012-05-07 11:59:32 -07:00
Ben Atkin
5f65c36171 use get() with single argument to read setting vars 2012-05-07 12:51:41 -06:00
Ben Atkin
d64bb2f886 use process.env.PORT. fix for #1118 2012-05-06 23:49:06 -06:00
TJ Holowaychuk
fc179c8fc3 Prepared release 3.0.0alpha3 2012-05-04 17:19:27 -07:00
TJ Holowaychuk
8235af47fe Merge pull request #1124 from pyrotechnick/patch-1
path.existsSync is deprecated. It is now called `fs.existsSync`.
2012-05-04 08:59:10 -07:00
Nicholas Kinsey
908f3da3da path.existsSync is deprecated. It is now called fs.existsSync. 2012-05-05 00:32:53 +10:00
TJ Holowaychuk
64aac199de any engine 2012-05-03 17:33:09 -07:00
TJ Holowaychuk
503c45840f ws 2012-05-03 09:35:27 -07:00
TJ Holowaychuk
6f102ff40f Added view-locals example 2012-05-03 09:35:14 -07:00
TJ Holowaychuk
6e26a8d366 fixed two res.locals.use() tests 2012-05-03 08:45:07 -07:00
TJ Holowaychuk
d9aea70ccc removed file heading comments 2012-05-03 08:43:42 -07:00
TJ Holowaychuk
dd33ef2eb6 Added res.locals.use(). Closes #1120 2012-05-03 08:42:18 -07:00
TJ Holowaychuk
f3a32f2e29 Changed: moved static() in generated apps below router 2012-05-02 19:05:47 -07:00
TJ Holowaychuk
1a3e40d818 Changed: res.send() only set ETag when not previously set 2012-05-02 16:20:35 -07:00
TJ Holowaychuk
18cdb3d845 Added public app.routes. Closes #887
keep things simple for now :)
2012-05-02 16:19:41 -07:00
TJ Holowaychuk
0fca62c037 misc refactoring 2012-05-02 15:59:48 -07:00
TJ Holowaychuk
e9cd82b72d more * tests 2012-05-02 15:52:26 -07:00
TJ Holowaychuk
4d9ad21047 refactored * routing test 2012-05-02 15:49:38 -07:00
TJ Holowaychuk
1cc2dc7150 debug() originalUrl in router 2012-05-01 16:25:10 -07:00
TJ Holowaychuk
3dc88b2c0c refine express(1) generated stylus middleware 2012-04-30 17:54:16 -07:00
TJ Holowaychuk
53f1ffb4e7 ocd 2012-04-30 14:51:04 -07:00
TJ Holowaychuk
579a1be7c8 Added res.send() If-None-Match test 2012-04-28 20:02:38 -07:00
TJ Holowaychuk
c0a68fcd0d Added Buffer ETag support to res.send() 2012-04-28 20:00:30 -07:00
TJ Holowaychuk
b79853e9bd updated crc with buffer patch 2012-04-28 19:50:36 -07:00
TJ Holowaychuk
f86838ceab connect 2.2.1 dep 2012-04-28 10:20:00 -07:00
TJ Holowaychuk
809e0b8c92 merged 2012-04-27 10:46:27 -07:00
TJ Holowaychuk
a58e3deac2 Added conditional-GET support to res.send() 2012-04-27 10:44:39 -07:00
TJ Holowaychuk
430699c082 more benchmarks 2012-04-26 22:11:35 -07:00
TJ Holowaychuk
b04233981f more benchmarks 2012-04-26 22:09:14 -07:00
TJ Holowaychuk
de10194f33 build status image 2012-04-26 18:46:00 -07:00
TJ Holowaychuk
7c2e1ad0ed .contentType -> .type() in core 2012-04-26 14:32:28 -07:00
TJ Holowaychuk
67ddb429e3 Added: coerce res.set() values to strings
if you use res.get() this can bite you in the ass
if you set an etag to a number for example :)
good times
2012-04-26 13:52:37 -07:00
TJ Holowaychuk
a169cc7119 render bench 2012-04-26 12:36:26 -07:00
TJ Holowaychuk
9719b58575 error/index.js 2012-04-26 04:57:28 -07:00
TJ Holowaychuk
13c18fa363 clean up error example 2012-04-26 04:56:23 -07:00
TJ Holowaychuk
c17ad6ef65 error-pages/index.js 2012-04-26 04:55:24 -07:00
TJ Holowaychuk
2c14d0c966 clean up weird whitespace in error-pages acceptance tests 2012-04-26 04:55:06 -07:00
TJ Holowaychuk
2cd1783613 fixed hello-world 2012-04-26 04:53:56 -07:00
TJ Holowaychuk
06db11cd61 removed old form example 2012-04-26 04:51:48 -07:00
TJ Holowaychuk
125421ec45 removed old github example 2012-04-26 04:51:25 -07:00
TJ Holowaychuk
cc84f40d61 misc 2012-04-26 04:46:37 -07:00
TJ Holowaychuk
c130918135 more mvc acceptance tests 2012-04-26 04:42:22 -07:00
TJ Holowaychuk
babeb4633e make test now runs unit / acceptance tests 2012-04-26 04:41:06 -07:00
TJ Holowaychuk
30167356f2 less verbose example apps when testing 2012-04-26 04:40:04 -07:00
TJ Holowaychuk
441b309959 Fixed req/res proto inheritance 2012-04-26 04:38:33 -07:00
TJ Holowaychuk
b7b032f8e0 test for updating mvc user 2012-04-26 04:34:37 -07:00
TJ Holowaychuk
50f43462ae logger for mvc 2012-04-26 04:32:25 -07:00
TJ Holowaychuk
bd2a972dba fixed mvc example 404 2012-04-26 04:28:29 -07:00
TJ Holowaychuk
3c162ae030 implement "before" middleware for mvc example 2012-04-26 04:23:21 -07:00
TJ Holowaychuk
3c12757d9e more tests 2012-04-26 04:10:57 -07:00
TJ Holowaychuk
fa746cc027 added 404 and 5xx pages to mvc example 2012-04-26 04:08:58 -07:00
TJ Holowaychuk
1e85178c73 started mvc acceptance tests 2012-04-26 04:02:14 -07:00
TJ Holowaychuk
d0bc0ad2ca Added new mvc example 2012-04-26 03:53:49 -07:00
TJ Holowaychuk
c33f1bac08 mounted hw bench 2012-04-26 03:24:42 -07:00
TJ Holowaychuk
58d522d824 restore req/res proto 2012-04-26 03:22:44 -07:00
TJ Holowaychuk
858e4dccdc ws 2012-04-26 03:12:17 -07:00
TJ Holowaychuk
c2054077f4 Release 3.0.0alpha2 2012-04-26 03:10:07 -07:00
TJ Holowaychuk
754dd320ff .npmignore lib-cov 2012-04-26 02:58:29 -07:00
TJ Holowaychuk
a376980a69 update headers 2012-04-25 21:49:43 -07:00
TJ Holowaychuk
cf7d710bc1 refactored res.sendfile() 2012-04-25 21:48:19 -07:00
TJ Holowaychuk
8f8740028c Fixed: use app.get() for all core settings 2012-04-25 21:40:53 -07:00
TJ Holowaychuk
b0e03eb8a8 make expressInit() middleware self-aware 2012-04-25 21:37:10 -07:00
TJ Holowaychuk
929dc703ca unused var 2012-04-25 21:36:30 -07:00
TJ Holowaychuk
18a6bbfd80 docs 2012-04-25 17:59:02 -07:00
TJ Holowaychuk
73092c9898 Perf: memoize parsed urls 2012-04-25 16:12:40 -07:00
TJ Holowaychuk
b739126707 Merge branch 'master' of github.com:visionmedia/express 2012-04-25 16:08:52 -07:00
TJ Holowaychuk
c39cf1ef84 connect 2.2.0 dep 2012-04-25 16:07:43 -07:00
TJ Holowaychuk
861f6baa66 added some middleware to support/app.js 2012-04-25 15:00:49 -07:00
TJ Holowaychuk
25fe426266 more benchmarks 2012-04-25 14:54:21 -07:00
TJ Holowaychuk
85fc586ee5 added make benchmark back 2012-04-25 14:51:45 -07:00
TJ Holowaychuk
2a951e961b Merge pull request #1106 from benedmunds/master
Fixed reference to this.body.length in Post validation error when the body length is less than 10 characters
2012-04-25 10:49:58 -07:00
TJ Holowaychuk
42aeab500b Fixed redis session example 2012-04-25 10:30:56 -07:00
TJ Holowaychuk
808a8a314a Fixed session example. Closes #1105 2012-04-25 10:29:15 -07:00
TJ Holowaychuk
b809041894 refactored res.send() 2012-04-25 09:38:59 -07:00
TJ Holowaychuk
1ddf0c8a42 Merge pull request #1100 from coolony/master
Make string object behave like string literals with res.send
2012-04-25 09:38:19 -07:00
Ben Edmunds
d8caf209e3 Fixed reference to this.body.length in Post validation error when the body length is less than 10 characters. 2012-04-24 15:05:17 -04:00
Pierre Matri
22668555ad Fixed req.send tests for string objects 2012-04-22 14:06:13 +02:00
Pierre Matri
0f585931a4 Make string object behave like string literals with res.send 2012-04-22 13:49:50 +02:00
TJ Holowaychuk
d03386571d alpha install docs 2012-04-19 19:03:25 -07:00
TJ Holowaychuk
72948068e2 try npm publishConfig 2012-04-19 18:51:46 -07:00
TJ Holowaychuk
97808383ed Added client-side data exposing example 2012-04-19 16:03:22 -07:00
TJ Holowaychuk
de6f30042f re-generate docs 2012-04-18 17:42:17 -07:00
TJ Holowaychuk
b5cee82604 doc typo 2012-04-18 17:42:13 -07:00
TJ Holowaychuk
fab3e91973 app.engine() docs 2012-04-18 17:23:54 -07:00
TJ Holowaychuk
c937c797c2 Added docs/express.md makefile target 2012-04-18 17:18:22 -07:00
TJ Holowaychuk
0ddc40ad7f Merge branch 'master' of github.com:visionmedia/express 2012-04-17 20:39:06 -07:00
TJ Holowaychuk
e3f6faa350 removed layout-control example
no longer applies
2012-04-17 20:38:52 -07:00
TJ Holowaychuk
cc69d50c60 remove mvc example
too large to actually be helpful... and annoying
to maintain :)
2012-04-17 20:37:55 -07:00
TJ Holowaychuk
b55eb5acf5 removed format acceptance tests 2012-04-17 20:26:28 -07:00
TJ Holowaychuk
ebabce9982 Fixed route-loading example 2012-04-17 20:26:09 -07:00
TJ Holowaychuk
037d3490ca removed format example 2012-04-17 20:21:05 -07:00
TJ Holowaychuk
ba7bcbb0d6 Fixed cookie-sessions example 2012-04-17 20:20:39 -07:00
TJ Holowaychuk
79ce6eda6f Fixed multipart acceptance test 2012-04-17 20:18:33 -07:00
TJ Holowaychuk
9f7c9cfc4c added grey.png test fixture 2012-04-17 20:16:58 -07:00
TJ Holowaychuk
5dcc4f46db Fixed jade example 2012-04-17 20:15:17 -07:00
TJ Holowaychuk
2f54201774 Merge pull request #1081 from brianloveswords/fix-readme
Add protocol to fix link being interpreted as relative in README.md.
2012-04-16 10:07:13 -07:00
Brian J Brennan
e8eef64601 Add protocol to fix link being interpreted as relative in README.md. 2012-04-16 12:43:51 -04:00
TJ Holowaychuk
27b1b5e3b3 docs 2012-04-16 08:53:16 -07:00
TJ Holowaychuk
5fa2f89542 Added res.header() and req.header() aliases for BC 2012-04-16 08:31:30 -07:00
TJ Holowaychuk
c998b91c09 refactoring 2012-04-15 22:14:52 -07:00
TJ Holowaychuk
5be2395170 Fixed generated express dep. Closes #1078 2012-04-15 22:13:51 -07:00
TJ Holowaychuk
b4cd6bb8f0 removed old route reflection methods 2012-04-15 21:01:33 -07:00
TJ Holowaychuk
7e81cad0bf Added new dox API docs 2012-04-15 21:01:17 -07:00
TJ Holowaychuk
856f3b3be6 removed old docs 2012-04-15 19:42:55 -07:00
TJ Holowaychuk
785ac87846 Added express.createServer() for BC 2012-04-15 19:02:57 -07:00
TJ Holowaychuk
75c29bd42a removed createServer() in readme 2012-04-15 13:25:58 -07:00
TJ Holowaychuk
221a46a396 require express in readme...
some people come to express before anything
else i guess
2012-04-15 11:57:38 -07:00
TJ Holowaychuk
abe5cc7184 populate changelog 2012-04-15 11:40:31 -07:00
TJ Holowaychuk
12ada75cad updated history.md from 2x branch 2012-04-15 11:24:08 -07:00
TJ Holowaychuk
5a74d94558 require package.json for .version in express(1) 2012-04-15 11:23:16 -07:00
TJ Holowaychuk
d1d3f310e9 Release 3.0.0alpha1 2012-04-15 11:21:40 -07:00
TJ Holowaychuk
089a83363f Changed: enable "jsonp callback" as a default 2012-04-15 11:20:25 -07:00
TJ Holowaychuk
c28e6db428 update mkdirp dep 2012-04-15 11:18:38 -07:00
TJ Holowaychuk
05253272cb clarify ejs example 2012-04-13 09:16:16 -07:00
TJ Holowaychuk
12e087820c Added: res.format() sets Vary: Accept 2012-04-12 20:11:15 -07:00
TJ Holowaychuk
8dc001567b removed res.cache()
too specific
2012-04-12 19:46:53 -07:00
TJ Holowaychuk
9af3256f72 added jsonp test 2012-04-11 20:27:21 -07:00
TJ Holowaychuk
cdd333a2e0 connect 2.1.2 dep 2012-04-11 14:35:28 -07:00
TJ Holowaychuk
aa4ec8f3e2 fixed glob example 2012-04-11 13:56:08 -07:00
TJ Holowaychuk
5ea78cf259 ocd 2012-04-11 13:50:41 -07:00
TJ Holowaychuk
600eaea2d1 fixed acceptance tests 2012-04-11 12:49:18 -07:00
TJ Holowaychuk
81b15833f7 connect 2.1.1 dep 2012-04-11 12:03:00 -07:00
TJ Holowaychuk
9abc221559 connect 2.1.0 dep 2012-04-11 11:17:29 -07:00
TJ Holowaychuk
7048be2830 refactoring auth example 2012-04-11 11:17:12 -07:00
TJ Holowaychuk
91eb27513a docs 2012-04-11 10:08:12 -07:00
TJ Holowaychuk
04f0682439 removed old benchmark target from Makefile 2012-04-11 09:57:43 -07:00
TJ Holowaychuk
36bab5408d removed old doc gen stuff from Makefile 2012-04-11 09:57:12 -07:00
TJ Holowaychuk
c483dab4b8 ocd 2012-04-11 09:44:49 -07:00
TJ Holowaychuk
f1d759f279 Merge pull request #1073 from Zoramite/lessMiddleware
Adding support back in for less CSS.
2012-04-11 08:32:45 -07:00
Randy Merrill
4c1afb2984 Making the default case for the dependencies be more dynamic. 2012-04-11 06:54:14 -07:00
Randy Merrill
db9b2bfbe1 Adding support back in for less CSS. 2012-04-11 06:50:45 -07:00
TJ Holowaychuk
377677cf30 Merge branch 'master' of github.com:visionmedia/express 2012-04-10 12:19:51 -07:00
TJ Holowaychuk
24a4e95ffe Changed to allow extname or type/subtype only. Closes #1072 2012-04-10 12:19:34 -07:00
TJ Holowaychuk
8fdd9e967a Merge pull request #1069 from Benjen/patch-1
Updated example usage of res.locals() as it contained an error.
2012-04-05 08:54:16 -07:00
Benjen
acfa6a692e Updated example usage of res.locals() as it contained an error. 2012-04-05 23:37:56 +08:00
TJ Holowaychuk
67ca22b6e4 throw when callback is not given to app.engine() 2012-04-04 12:30:25 -07:00
TJ Holowaychuk
ba413ee98d added another res.redirect() example 2012-04-04 08:43:12 -07:00
TJ Holowaychuk
acc0e934cb ocd 2012-04-02 20:13:50 -07:00
TJ Holowaychuk
1d485840fd ocd 2012-04-02 20:13:31 -07:00
TJ Holowaychuk
dcb147608a ocd 2012-04-02 20:01:13 -07:00
TJ Holowaychuk
ddf24d1fd6 fixed markdown example 2012-04-02 20:00:53 -07:00
TJ Holowaychuk
886d7e6903 Merge pull request #1066 from cpedros/patch-1
Unused require of fs module
2012-04-02 16:00:38 -07:00
TJ Holowaychuk
2079ccbf42 updated signed cookie tests 2012-04-02 16:00:23 -07:00
TJ Holowaychuk
5ec88b0f6c typo 2012-04-02 15:56:58 -07:00
TJ Holowaychuk
b0bcd27124 removed req.signedCookie tests, this is connect 2012-04-02 15:56:40 -07:00
TJ Holowaychuk
4dfee21e91 removed req.cookies tests, this is connect 2012-04-02 15:56:21 -07:00
TJ Holowaychuk
18fa2c9c7d removed debug() for .use()
connect does this now
2012-04-02 15:54:19 -07:00
TJ Holowaychuk
04d43d60b7 added nicer error messages for failed view lookup. Closes #1065 2012-04-02 15:47:10 -07:00
Pero Pejovic
419731ec41 Unused require of fs module 2012-04-02 15:44:06 -07:00
TJ Holowaychuk
082ba88084 tabs -> spaces 2012-04-02 15:41:04 -07:00
TJ Holowaychuk
09a8474521 router: moved params logic to Router#match() 2012-04-02 15:39:20 -07:00
TJ Holowaychuk
6d323d3ff7 added param decoding test 2012-04-02 15:15:05 -07:00
TJ Holowaychuk
c4e003518a Merge branch 'master' of github.com:visionmedia/express 2012-04-02 15:09:51 -07:00
TJ Holowaychuk
9e251d14af Removed Collection 2012-04-02 15:09:39 -07:00
TJ Holowaychuk
9abba7d69a ocd 2012-04-02 15:07:41 -07:00
TJ Holowaychuk
0377540e2d utils: added pathRegexp() 2012-04-02 15:07:25 -07:00
TJ Holowaychuk
e6a15f66fc Merge pull request #1064 from ahizzle/master
(trivial) Give express init middleware function an explicit name
2012-03-30 15:19:14 -07:00
Andy Hiew
1787fd1b52 Trivial: Give the middleware init function an explicit name.
Middleware stack printout before:
    NODE> app.stack
    [ { route: '', handle: [Function: query] },
      { route: '', handle: [Function] },
      { route: '', handle: [Function: favicon] },
      { route: '', handle: [Function: logger] },

    Middleware stack printout after:
    NODE> app.stack
    [ { route: '', handle: [Function: query] },
      { route: '', handle: [Function: expressInit] },
      { route: '', handle: [Function: favicon] },
      { route: '', handle: [Function: logger] },
2012-03-30 16:05:11 -06:00
TJ Holowaychuk
54c3d5c113 reverse req.ips array 2012-03-29 16:39:32 -07:00
TJ Holowaychuk
6d0f9a37a2 req.ipds doesnt need "trust proxy"
not really anyway, if you use this
you better trust it :)
2012-03-29 16:36:36 -07:00
TJ Holowaychuk
60dac4d2ff Merge branch 'master' of github.com:visionmedia/express 2012-03-29 16:27:16 -07:00
TJ Holowaychuk
dd468fbe9a Added req.ips 2012-03-29 16:26:59 -07:00
TJ Holowaychuk
04ecf04832 Added X-Forwarded-Proto support to req.secure 2012-03-29 16:17:44 -07:00
TJ Holowaychuk
6d45616a7a Merge pull request #1062 from shtylman/06d2016ee
remove unused variable
2012-03-29 08:58:48 -07:00
Roman Shtylman
06d2016ee7 remove unused variable from Router.route 2012-03-28 22:43:49 -04:00
TJ Holowaychuk
984bfadcdd Merge pull request #1057 from Skookum/master
Update Connect Version
2012-03-27 08:34:29 -07:00
Jim Snodgrass
f79f3f8b22 update connect version 2012-03-27 12:11:48 -03:00
TJ Holowaychuk
ba570a9842 typo 2012-03-24 11:42:26 -07:00
TJ Holowaychuk
365a98d00f docs 2012-03-24 11:39:47 -07:00
TJ Holowaychuk
4e2677fe2c docs 2012-03-24 11:37:26 -07:00
TJ Holowaychuk
d6d16b7899 Added req.accepts() comma-delimited string support 2012-03-24 11:36:52 -07:00
TJ Holowaychuk
86a9e0803a refactored utils.accepts() 2012-03-24 11:32:28 -07:00
TJ Holowaychuk
fdf96922b5 added res.json() array test to illustrate that it works 2012-03-24 11:13:53 -07:00
TJ Holowaychuk
d396761f76 refactored cookie-sessions example 2012-03-23 18:22:30 -07:00
TJ Holowaychuk
711519361c fixed content-negotiation example 2012-03-23 18:11:12 -07:00
TJ Holowaychuk
e4827b8d89 more docs for req.accepts(arr) 2012-03-23 18:03:19 -07:00
TJ Holowaychuk
7ec7cb94f9 Merge branch 'master' of github.com:visionmedia/express 2012-03-23 17:59:08 -07:00
TJ Holowaychuk
298899d02c Added array support. Closes #1053 2012-03-23 17:58:41 -07:00
TJ Holowaychuk
43b35a4ae0 Added array support. Closes #1053 2012-03-23 17:58:15 -07:00
TJ Holowaychuk
a7a8dcd617 Added note to express(1) for running the app 2012-02-29 16:11:39 -08:00
TJ Holowaychuk
bdf0b26a12 Added node app for npm scripts.start Closes #1032 2012-02-29 16:10:35 -08:00
TJ Holowaychuk
73e87b6a2e connect 2.0 dep 2012-02-27 19:31:27 -08:00
TJ Holowaychuk
ac3d002cb2 added "view cache" in production test 2012-02-26 11:56:49 -08:00
TJ Holowaychuk
ada2d0c627 added app.param() array test 2012-02-26 11:52:23 -08:00
TJ Holowaychuk
286d3a1ff8 added another app.param() test 2012-02-26 11:50:32 -08:00
TJ Holowaychuk
937f01a225 added app.param() tests 2012-02-26 11:46:44 -08:00
TJ Holowaychuk
c9559e03da ignore coverage.html 2012-02-23 21:35:17 -08:00
TJ Holowaychuk
d115798d5b ocd 2012-02-23 21:34:48 -08:00
TJ Holowaychuk
b6ee5fafd0 Added mocha test coverage support 2012-02-23 20:49:50 -08:00
TJ Holowaychuk
533b31237c optimize res.format() 2012-02-23 10:59:54 -08:00
TJ Holowaychuk
812a470122 docs 2012-02-23 10:58:57 -08:00
TJ Holowaychuk
eb3105ef25 Added extname support to res.format(). Closes #1024 2012-02-23 10:58:06 -08:00
TJ Holowaychuk
ffcaa04d2c renamed res.respondTo() to res.format()
since you are not really responding with it,
its basically as switch
2012-02-22 19:59:52 -08:00
TJ Holowaychuk
a47660ba67 refactored res.redirect() with respondTo() 2012-02-22 19:58:36 -08:00
TJ Holowaychuk
e2291184dc changed DEBUG express:routes to express:router 2012-02-22 19:29:24 -08:00
TJ Holowaychuk
4e332452b7 Added req.subdomains 2012-02-22 16:36:13 -08:00
TJ Holowaychuk
e2f43df5e9 refactored app.render() 2012-02-22 09:04:59 -08:00
TJ Holowaychuk
141929cd6e typo 2012-02-21 10:23:20 -08:00
TJ Holowaychuk
ec03968bd4 added test for respondTo() callback args 2012-02-21 09:30:05 -08:00
TJ Holowaychuk
a21435cb05 updated content-negotiation example 2012-02-18 17:37:47 -08:00
TJ Holowaychuk
bdfa6d1fe7 Added: res.respondTo() defaults the content-type 2012-02-18 17:23:02 -08:00
TJ Holowaychuk
b565e258cb Added res.respondTo(obj) 2012-02-18 17:13:40 -08:00
TJ Holowaychuk
892b605ab5 shorten --force desc 2012-02-18 15:35:07 -08:00
TJ Holowaychuk
4d99352526 Merge pull request #1016 from tstrimple/master
Added the ability to force the install of express scaffolding to a non-empty directory.
2012-02-18 15:34:34 -08:00
tstrimple
cbf0eaa429 "Add the ability to force install express to non-empty directory." 2012-02-18 23:00:56 +00:00
TJ Holowaychuk
80e16c8ca3 tweak multipart example 2012-02-18 14:14:09 -08:00
TJ Holowaychuk
0ae024afa8 Merge branch 'integration' 2012-02-18 14:06:45 -08:00
TJ Holowaychuk
73caacbd42 mounting sucks, removing this example 2012-02-18 14:06:41 -08:00
TJ Holowaychuk
b667bda8f2 y u no space? 2012-02-18 14:06:22 -08:00
TJ Holowaychuk
463e38cf67 y u no space? 2012-02-18 14:05:57 -08:00
TJ Holowaychuk
83c8d65e3d styling 2012-02-18 14:05:05 -08:00
TJ Holowaychuk
9548e7d1e2 removed hello world acceptance tests 2012-02-18 14:04:25 -08:00
TJ Holowaychuk
ee290d82d1 fixing acceptance tests 2012-02-18 14:04:11 -08:00
TJ Holowaychuk
b75bb003bd fixed markdown example 2012-02-18 13:54:36 -08:00
TJ Holowaychuk
6c2194fdb4 smaller hello world 2012-02-18 13:52:31 -08:00
TJ Holowaychuk
da61d8b639 fixed github example 2012-02-18 13:52:02 -08:00
TJ Holowaychuk
863ba199f6 stack is always shown 2012-02-18 13:49:08 -08:00
TJ Holowaychuk
161ebb354f removed old flash example 2012-02-18 13:48:32 -08:00
TJ Holowaychuk
1516ebf7f9 misc 2012-02-18 13:46:22 -08:00
TJ Holowaychuk
2820f2227d fixing downloads example 2012-02-18 13:45:44 -08:00
TJ Holowaychuk
a078f5f5c1 docs 2012-02-18 13:41:44 -08:00
TJ Holowaychuk
d0a83053d3 fixed up blog example messages 2012-02-18 13:41:10 -08:00
TJ Holowaychuk
b6bc01abde fixing blog example 2012-02-18 13:28:56 -08:00
TJ Holowaychuk
196a1eb6ad set view engine for auth app 2012-02-18 13:20:23 -08:00
TJ Holowaychuk
593271f536 removed accessLogger from auth example 2012-02-18 13:18:00 -08:00
TJ Holowaychuk
0f24f715ba tweak auth example 2012-02-18 13:16:17 -08:00
Robert Sköld
bb9bfa5618 Cleaned out comments from resource acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
8120a06cd6 Updated resource example with acceptnce test. 2012-02-18 13:08:26 -08:00
Robert Sköld
a153082120 Updated params example with acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
970031e267 Updated multipart example with acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
a819856f3f Updated mounting example with acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
4dbaaa2855 Updated markdown example with acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
0593cf4379 Updated helloworld example with acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
cd0e5dbb4c Updated format example with acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
7cb1c3cabb Updated form example for 3.x (not working as it relies on req.flash()) 2012-02-18 13:08:26 -08:00
Robert Sköld
550b9101b8 Updated error-pages example with acceptance test. 2012-02-18 13:08:26 -08:00
Robert Sköld
9d9564568b Updated error example with acceptance tests. 2012-02-18 13:08:26 -08:00
Robert Sköld
7ea7a53e7c Updated downloads example with acceptance tests. 2012-02-18 13:08:25 -08:00
Robert Sköld
ac387caf21 Added acceptance test for cookies. 2012-02-18 13:08:25 -08:00
Robert Sköld
ad3f1e84aa Updated blog example for Jade inheritence. Passes tests. 2012-02-18 13:08:25 -08:00
Robert Sköld
2432a0dda5 Added acceptance test for blog example. 2012-02-18 13:08:25 -08:00
Robert Sköld
03e5919910 Refactored acceptence/auth. 2012-02-18 13:08:25 -08:00
Robert Sköld
277e35f8c8 Added RegExp support to support/http for asserting the body. 2012-02-18 13:08:25 -08:00
Robert Sköld
0dd5836f3f Updated auth acceptance test style. 2012-02-18 13:08:25 -08:00
Robert Sköld
9290f0d407 Cookie secret is a cookieParser() thing. 2012-02-18 13:08:25 -08:00
Robert Sköld
9bd3ad846e Silence while NODE_ENV=test 2012-02-18 13:08:25 -08:00
Robert Sköld
a8c73649ce Updated auth example for express 3.x. With a test. 2012-02-18 13:08:25 -08:00
TJ Holowaychuk
6368ab49b4 ocd 2012-02-18 12:59:22 -08:00
TJ Holowaychuk
16b6a64ef9 refactored express(1) package.json generation 2012-02-18 12:50:16 -08:00
TJ Holowaychuk
e46431ee0e ws 2012-02-18 12:47:31 -08:00
TJ Holowaychuk
2e4cf0aa5c update mime dep 2012-02-18 12:46:36 -08:00
TJ Holowaychuk
3f8a7f05e8 update commander dep 2012-02-18 12:46:26 -08:00
TJ Holowaychuk
3360613bcd Merge branch 'master' of github.com:visionmedia/express 2012-02-18 12:41:55 -08:00
TJ Holowaychuk
f8a9cbe074 Added req.fresh and req.stale tests. Closes #998 2012-02-18 12:41:24 -08:00
TJ Holowaychuk
15f2e0c899 Merge pull request #1006 from eivindfjeldstad/router
Added support for arrays of paths
2012-02-17 08:42:39 -08:00
Tj Holowaychuk
6518e746c1 removed require "qs" as its no longer used. Closes #1014 2012-02-16 08:17:59 -08:00
Eivind Fjeldstad
38b046d6ad Added test for an array of paths 2012-02-12 16:26:32 +01:00
Eivind Fjeldstad
28d7750eda Added support for arrays of paths 2012-02-12 16:23:21 +01:00
Tj Holowaychuk
e5fc85bddc moved a debug() down 2012-02-09 13:40:33 -08:00
Tj Holowaychuk
2a40571118 Added DEBUG=express:application support 2012-02-09 13:29:21 -08:00
Tj Holowaychuk
f1aa57c57e more debug() 2012-02-09 13:15:45 -08:00
Tj Holowaychuk
0b876ece41 Added DEBUG=express:routes support 2012-02-09 13:12:13 -08:00
Tj Holowaychuk
ca0bd1a0b5 Added "debug" dependency 2012-02-09 12:14:31 -08:00
Tj Holowaychuk
2d31b5df34 Removed "qs" dep, only connect has this now 2012-02-08 12:50:30 -08:00
Tj Holowaychuk
10f7ca0ebf upgrade deps 2012-02-08 12:03:25 -08:00
TJ Holowaychuk
85d6964874 Removed req.header(field) 2012-02-07 08:32:08 -08:00
TJ Holowaychuk
76fd462bcc Removed res.header(field, value) 2012-02-07 08:30:27 -08:00
TJ Holowaychuk
c44f01879f utilize res.set() internally 2012-02-07 08:28:40 -08:00
TJ Holowaychuk
fe27989a69 doc typo 2012-02-07 08:25:40 -08:00
TJ Holowaychuk
b04f3eeede refactored req.xhr 2012-02-07 08:24:58 -08:00
TJ Holowaychuk
6ab61d023f docs 2012-02-07 08:21:32 -08:00
TJ Holowaychuk
4d87efc771 Added "trust proxy" setting 2012-02-07 08:19:30 -08:00
TJ Holowaychuk
e47d368239 update node support docs 2012-02-07 04:55:38 -08:00
TJ Holowaychuk
5b1235addc replaced short contrib list with git-summary(1) output 2012-02-07 04:55:07 -08:00
TJ Holowaychuk
8c2c1240e1 removed old req.get() for now 2012-02-07 04:50:00 -08:00
TJ Holowaychuk
27e696b7b1 Added req.get() alias of req.header() 2012-02-07 04:49:12 -08:00
TJ Holowaychuk
bfba98f532 Removed req.header() defaultValue support 2012-02-07 04:47:51 -08:00
TJ Holowaychuk
8de3ad50b2 refactored res.redirect() with req.protocol() 2012-02-07 04:43:35 -08:00
TJ Holowaychuk
2ba343d2b5 Added req.protocol() 2012-02-07 04:39:10 -08:00
TJ Holowaychuk
ff92afa557 Added "json replacer" and "json spaces" settings. Closes #996 [credit to jed] 2012-02-07 03:30:34 -08:00
Tj Holowaychuk
c3c0fb95a8 backported fix from 2.x for app.all() del method 2012-02-06 10:12:59 -08:00
Tj Holowaychuk
bb56a094bb Added app.all() test 2012-02-06 10:07:49 -08:00
Tj Holowaychuk
2211943170 make express(1) generated deps * 2012-01-31 19:48:38 -08:00
TJ Holowaychuk
4eb8bc0857 Merge pull request #968 from peters/patch-1
Typo
2012-01-18 17:17:40 -08:00
Peter Rekdal Sunde
fa51cb8d63 Typo 2012-01-19 02:14:30 +01:00
Tj Holowaychuk
706dec93a4 keywords 2012-01-17 09:51:49 -08:00
Tj Holowaychuk
7a32920448 Merge branch 'master' of github.com:visionmedia/express 2012-01-17 09:51:39 -08:00
Tj Holowaychuk
57a3899c1d removed connect-form dev dep 2012-01-17 09:51:27 -08:00
Tj Holowaychuk
374d159e0e update dependencies 2012-01-17 09:49:02 -08:00
TJ Holowaychuk
4f5a41b84f removed connect-form dep 2012-01-16 20:16:08 -08:00
TJ Holowaychuk
a2f380fdd6 Merge pull request #955 from mmalecki/npm-test
Add `test` script
2012-01-08 17:08:10 -08:00
Maciej Małecki
301085e510 Add test script 2012-01-09 02:03:23 +01:00
TJ Holowaychuk
af5b64a434 Merge pull request #951 from Raynos/patch-1
Gave the router a name.
2012-01-06 07:32:23 -08:00
Raynos
fa088e37bc Gave the router a name. All the other connect middlewares are named functions. 2012-01-06 14:39:37 +00:00
Tj Holowaychuk
613bdc91e5 Merge branch 'master' of github.com:visionmedia/express 2012-01-02 08:28:40 -08:00
TJ Holowaychuk
edfe50e713 Removed app.is() support 2011-12-30 15:10:51 -08:00
TJ Holowaychuk
26fb403ced Fixed req.is() with charsets 2011-12-30 15:04:41 -08:00
TJ Holowaychuk
014fb46449 Added req.is() tests 2011-12-30 15:01:34 -08:00
TJ Holowaychuk
144a88b109 Removed app.match() 2011-12-28 12:09:58 -07:00
TJ Holowaychuk
34c0d2509a test for route index state 2011-12-28 12:07:46 -07:00
TJ Holowaychuk
a12a9e3fd9 tests for Router#match() 2011-12-28 12:03:50 -07:00
TJ Holowaychuk
8df73f3d83 renamed Router#_match() -> match() 2011-12-28 11:57:45 -07:00
TJ Holowaychuk
6dac874ff4 renamed Router#_route() -> route() 2011-12-28 11:55:11 -07:00
TJ Holowaychuk
81d25f6861 Merge branch 'feature/decouple-router' 2011-12-28 11:15:10 -07:00
TJ Holowaychuk
c0c1975da6 decouple Router options. Closes #941 2011-12-28 11:14:57 -07:00
Tj Holowaychuk
dd7af29103 mocha.opts 2011-12-20 17:37:06 -08:00
Tj Holowaychuk
85ea5f67f4 Merge branch 'master' of github.com:visionmedia/express 2011-12-20 13:33:14 -08:00
Tj Holowaychuk
8e3cb6174d added test for res.sendfile() content-type override 2011-12-20 13:32:39 -08:00
TJ Holowaychuk
6c01e9a43a Update bin/express 2011-12-20 08:33:54 -08:00
TJ Holowaychuk
6061670161 Merge pull request #939 from ksato9700/master
EOL style per platform
2011-12-20 08:33:12 -08:00
Ken Sato
7c66db2c45 Change the eol character based on platform type 2011-12-19 22:55:50 -08:00
TJ Holowaychuk
05e95ae55a misc 2011-12-18 07:41:08 -08:00
TJ Holowaychuk
416ad564d0 Added cookie-sessions example 2011-12-17 15:11:52 -08:00
TJ Holowaychuk
55f8f9bc42 added regression test for #847 2011-12-17 13:53:28 -08:00
TJ Holowaychuk
386a9e88b4 removed old tests 2011-12-17 13:43:51 -08:00
TJ Holowaychuk
f6ca25edbe web-service acceptance tests 2011-12-17 12:44:55 -08:00
TJ Holowaychuk
1ea221aa4e fixed an acceptance test 2011-12-17 12:21:42 -08:00
TJ Holowaychuk
d72a6666a1 removed ejs layout.ejs from express(1) 2011-12-17 12:16:52 -08:00
TJ Holowaychuk
b69199f884 fixed express(1) jade tmpl inheritance 2011-12-17 12:15:12 -08:00
TJ Holowaychuk
65042c86a6 removed the use of .include.string() 2011-12-17 12:02:34 -08:00
TJ Holowaychuk
d7dccfd56d removed the use of should.contain() 2011-12-17 12:02:11 -08:00
Tj Holowaychuk
e60f4a5e1e Merge branch 'master' of github.com:visionmedia/express 2011-12-16 14:44:35 -08:00
Tj Holowaychuk
fa3d4cbb23 move express(1) static() up
so people dont get confused when it receives sessions
2011-12-16 14:44:12 -08:00
TJ Holowaychuk
56d303ec09 Merge pull request #934 from siong1987/keywords
update keywords for search.npmjs.org
2011-12-15 09:10:09 -08:00
Teng Siong Ong
4600548b4d update keywords for search.npmjs.org 2011-12-15 11:06:08 -06:00
Tj Holowaychuk
7d24c2ba40 Fixed app.set() with undefined 2011-12-15 09:00:39 -08:00
Tj Holowaychuk
b4ce57caec spec 2011-12-09 16:14:23 -08:00
Tj Holowaychuk
43c09b2eaa ejs test 2011-12-09 16:07:15 -08:00
Tj Holowaychuk
b32fd0bee4 * dev deps 2011-12-09 15:55:41 -08:00
Tj Holowaychuk
3b6e96efa9 ejs tests 2011-12-09 15:29:09 -08:00
Tj Holowaychuk
29ef828b9c added first batch of acceptance tests for examples 2011-12-09 15:21:10 -08:00
Tj Holowaychuk
39ae443433 semi 2011-12-09 15:09:14 -08:00
Tj Holowaychuk
c30c2f8d38 typo 2011-12-09 14:32:35 -08:00
Tj Holowaychuk
5757f875f2 Added X-Forwarded-Proto support to res.redirect(). Closes #927 2011-12-08 12:45:46 -08:00
Tj Holowaychuk
e49c482a3f req.body takes precedence 2011-12-07 08:41:22 -08:00
Tj Holowaychuk
a592d6c1aa misc 2011-12-06 16:53:05 -08:00
Tj Holowaychuk
88f154fecd Added support for .. in redirects as well 2011-12-06 16:44:15 -08:00
Tj Holowaychuk
d7dfe3e812 expose router 2011-12-06 16:36:52 -08:00
Tj Holowaychuk
489265e3ca Added support for ./ in redirects 2011-12-06 16:32:48 -08:00
Tj Holowaychuk
3212a70a0c misc 2011-12-06 16:21:04 -08:00
Tj Holowaychuk
1cda0a96ca Removed redirect "home" 2011-12-06 16:13:42 -08:00
Tj Holowaychuk
83fb9f7548 removed a test 2011-12-06 16:12:42 -08:00
Tj Holowaychuk
43295289bf Removed app.redirect() 2011-12-06 16:04:06 -08:00
Tj Holowaychuk
0f72ca823b docs 2011-12-06 15:58:56 -08:00
Tj Holowaychuk
41786bc776 misc 2011-12-06 15:54:25 -08:00
Tj Holowaychuk
cca5d7ebbf more tests 2011-12-06 15:53:17 -08:00
Tj Holowaychuk
43c8764465 Added relative redirect support. Closes #920 2011-12-06 15:50:08 -08:00
Tj Holowaychuk
a1e325a2d9 use app.path() in res.redirect() 2011-12-06 15:40:17 -08:00
Tj Holowaychuk
17a831e32f app.path() 2011-12-06 15:36:44 -08:00
Tj Holowaychuk
2a13db3bb8 Added favicon() to express(1) generated app 2011-12-05 20:01:25 -08:00
Tj Holowaychuk
eb5a73538a express(1) errorHandler() only in development
no longer acts as production error handling,
just implement that with custom middleware
2011-12-05 19:41:05 -08:00
Tj Holowaychuk
006a6c787b Added exports.{request,response} 2011-11-28 11:48:27 -08:00
Tj Holowaychuk
c3d96df0f0 Added req.route test 2011-11-24 17:59:00 -08:00
Tj Holowaychuk
15e7218bc4 tests for app.get() inheritance. Closes #904 2011-11-24 15:27:09 -08:00
Tj Holowaychuk
28f32b9b8e Removed req.notify() 2011-11-24 15:12:25 -08:00
Tj Holowaychuk
1d0a56b673 removed uses of "root" 2011-11-24 14:33:23 -08:00
Tj Holowaychuk
ad1424681b comment some tests 2011-11-24 14:31:42 -08:00
Tj Holowaychuk
87b991c076 removed "root" setting
screw it, no one will understand anyway
2011-11-24 14:27:28 -08:00
Tj Holowaychuk
5d593f26af .parent tests 2011-11-24 14:04:37 -08:00
Tj Holowaychuk
853c270fce more mounting tests 2011-11-24 13:51:04 -08:00
Tj Holowaychuk
fcf34e0587 adding some mounting tests 2011-11-24 13:49:27 -08:00
Tj Holowaychuk
b6611c8a3b Added: emit "mount" event on the app being mounted 2011-11-24 13:24:34 -08:00
Tj Holowaychuk
aab08d774b Removed implementation of app.mounted(callback) 2011-11-24 13:20:10 -08:00
Tj Holowaychuk
321aa52384 Removed app.mounted(callback) 2011-11-24 13:19:53 -08:00
Tj Holowaychuk
1334a74ef1 misc refactoring 2011-11-24 12:50:19 -08:00
Tj Holowaychuk
19e3384bb1 Added test for res.sendfile() with non-GET. Closes #723 2011-11-24 12:34:47 -08:00
Tj Holowaychuk
6ae32fd596 docs 2011-11-24 12:22:59 -08:00
Tj Holowaychuk
4c316ba4ce refactored init middleware into its own file 2011-11-24 12:14:12 -08:00
Tj Holowaychuk
f2719411b7 Added event emitter inheritance test 2011-11-24 12:10:08 -08:00
Tj Holowaychuk
11faf6684e Added travis.yml. Closes #903 2011-11-24 11:58:34 -08:00
Tj Holowaychuk
547d18ce46 merged 2011-11-23 10:39:02 -08:00
Tj Holowaychuk
f183a81289 update mocha 2011-11-22 17:42:21 -08:00
TJ Holowaychuk
e44c874cab Fixed parseQuality(), exclude q=0 2011-11-20 12:54:48 -08:00
TJ Holowaychuk
9c7380efe4 Added req.acceptsLanguage() 2011-11-20 12:53:01 -08:00
TJ Holowaychuk
5e071a2e4b Added req.acceptsCharset() 2011-11-20 12:51:27 -08:00
TJ Holowaychuk
ff9b82c4f6 todo 2011-11-20 12:44:25 -08:00
TJ Holowaychuk
a0d0ac6cff docs 2011-11-20 12:43:06 -08:00
TJ Holowaychuk
b605a5de87 Changed: req.accepts() utilizing utils.accepts() 2011-11-20 12:42:06 -08:00
TJ Holowaychuk
36be2b0688 Added utils.accepts(type, str) 2011-11-20 12:41:12 -08:00
TJ Holowaychuk
376a5da705 Added req.accepts() tests 2011-11-20 12:24:05 -08:00
TJ Holowaychuk
c25258b75c removed irrelevant extending-templates example 2011-11-20 12:17:29 -08:00
TJ Holowaychuk
c685f3a294 docs 2011-11-20 12:16:04 -08:00
TJ Holowaychuk
f63767af0e example error layout 2011-11-20 12:15:47 -08:00
TJ Holowaychuk
4fa9a2e54b fixed error-pages example 2011-11-20 12:13:24 -08:00
TJ Holowaychuk
68bc592a05 fixed error example 2011-11-20 12:03:45 -08:00
TJ Holowaychuk
543fe2f2a4 fixed ejs example 2011-11-20 11:59:10 -08:00
TJ Holowaychuk
be52f38d8f fixed downloads example 2011-11-20 11:43:40 -08:00
TJ Holowaychuk
722a92f374 fixed cookies example 2011-11-20 11:33:06 -08:00
TJ Holowaychuk
d771d06e19 docs 2011-11-20 11:29:08 -08:00
TJ Holowaychuk
a5227191b5 fixed content-negotiation example 2011-11-20 11:28:12 -08:00
TJ Holowaychuk
499d3d6d78 Added req.acceptedCharsets 2011-11-19 22:16:16 -08:00
TJ Holowaychuk
2adf020753 tests 2011-11-19 22:13:07 -08:00
TJ Holowaychuk
e8c373694c Added req.acceptedLanguages 2011-11-19 22:12:09 -08:00
TJ Holowaychuk
a8fd8cb645 Added req.accepted 2011-11-19 22:08:26 -08:00
TJ Holowaychuk
fd06084106 more tests 2011-11-19 21:49:20 -08:00
TJ Holowaychuk
285500488d Added parseAccepts() util 2011-11-19 21:47:22 -08:00
TJ Holowaychuk
29d4ffd089 renamed prev util to parseQuality() 2011-11-19 21:43:48 -08:00
TJ Holowaychuk
fe5efa597b Added utils.parseAccepts(str) 2011-11-19 21:40:12 -08:00
TJ Holowaychuk
b93629a903 updated mocha 2011-11-19 16:02:42 -08:00
Tj Holowaychuk
0c72940933 updated mocha 2011-11-17 07:52:32 -08:00
Tj Holowaychuk
96f5279e3e consider 20ms slow 2011-11-16 14:38:09 -08:00
Tj Holowaychuk
821fa10203 update mocha 2011-11-16 14:35:38 -08:00
Tj Holowaychuk
9082e74971 Added app.listen() as a shortcut for http.createServer(app).listen() 2011-11-11 17:22:25 -08:00
Tj Holowaychuk
7a7d77e7bd Removed toArray() util 2011-11-11 14:30:27 -08:00
Tj Holowaychuk
ce2ec94e96 Added utils.escape(html) test 2011-11-11 14:29:23 -08:00
Tj Holowaychuk
d56e5d6923 Added utils.flatten(arr) tests 2011-11-11 14:27:36 -08:00
Tj Holowaychuk
5221ecc055 utils.isAbsolute() tests 2011-11-11 14:26:43 -08:00
Tj Holowaychuk
6ac2c6f578 Added router next(err) test 2011-11-11 14:02:43 -08:00
Tj Holowaychuk
772b752fa5 Added more route matching tests 2011-11-11 14:01:10 -08:00
Tj Holowaychuk
3c002d08c2 fixed test due to HEAD change 2011-11-11 13:54:12 -08:00
Tj Holowaychuk
2876424240 Added optional app.head() support 2011-11-11 13:53:20 -08:00
Tj Holowaychuk
74a0177ec9 Added app.head() override test 2011-11-11 13:49:35 -08:00
Tj Holowaychuk
da96844e9a Added app.head() test 2011-11-11 13:47:58 -08:00
Tj Holowaychuk
81652c8244 Added app.del() test 2011-11-11 13:46:44 -08:00
Tj Holowaychuk
f17434c95b misc 2011-11-11 13:45:11 -08:00
Tj Holowaychuk
01e854b5d2 Added app.options() test 2011-11-11 13:44:42 -08:00
Tj Holowaychuk
42953c7c44 Fixed default OPTIONS behavior 2011-11-11 13:31:44 -08:00
Tj Holowaychuk
5e56446d26 Changed express.methods to include only those supported by node 2011-11-11 13:25:16 -08:00
Tj Holowaychuk
61652f4ad9 upper-case the name 2011-11-11 13:20:33 -08:00
Tj Holowaychuk
fc1e84941d fixed head 2011-11-11 13:20:06 -08:00
Tj Holowaychuk
953eba0376 Added meta-generated tests for all HTTP methods supported 2011-11-11 13:18:50 -08:00
Tj Holowaychuk
5c032269e3 more tests 2011-11-11 13:04:08 -08:00
Tj Holowaychuk
1322d5a2c1 literal . test 2011-11-11 12:42:52 -08:00
Tj Holowaychuk
114f272906 escaped regexp test 2011-11-11 12:41:13 -08:00
Tj Holowaychuk
1286bbb982 naming capture groups 2011-11-11 12:36:16 -08:00
Tj Holowaychuk
9141c649e7 more tests 2011-11-11 12:34:09 -08:00
Tj Holowaychuk
ff2242da31 tests for * 2011-11-11 12:32:14 -08:00
Tj Holowaychuk
730a419984 param single-segment test 2011-11-11 12:22:21 -08:00
Tj Holowaychuk
25bd7d7997 Added route regexp tests 2011-11-11 12:19:49 -08:00
Tj Holowaychuk
77c9d9207d Renamed "case sensitive routes" to "case sensitive routing"
to match "strict routing"
2011-11-11 12:14:35 -08:00
Tj Holowaychuk
1e77629f1f Added "strict routing" setting tests 2011-11-11 12:13:24 -08:00
Tj Holowaychuk
76f65456ab Added "case sensitive routes" tests 2011-11-11 12:10:38 -08:00
Tj Holowaychuk
26e20e7ae5 more routing tests 2011-11-11 12:06:30 -08:00
Tj Holowaychuk
96217cf3fe optional trailing slash 2011-11-11 12:05:18 -08:00
Tj Holowaychuk
e9c96d8ccd tests for optional capture groups 2011-11-11 12:04:17 -08:00
Tj Holowaychuk
7ae2b968bb more routing tests 2011-11-11 11:54:56 -08:00
Tj Holowaychuk
83ea42afe5 started routing tests 2011-11-11 11:51:09 -08:00
Tj Holowaychuk
16587fcce1 Added req.param() default value test 2011-11-10 16:13:31 -08:00
Tj Holowaychuk
ffded44f32 Added req.param() tests. Closes #885 2011-11-10 16:11:50 -08:00
Tj Holowaychuk
92c5284b80 fixed auto use(app.router) 2011-11-10 16:11:35 -08:00
Tj Holowaychuk
f96102224c refactoring 2011-11-10 15:04:44 -08:00
Tj Holowaychuk
bf87d626eb docs 2011-11-10 15:01:22 -08:00
Tj Holowaychuk
e21a79dc61 Added res.cache() method 2011-11-10 15:00:50 -08:00
Tj Holowaychuk
caec590fe1 Added res.cache(str) 2011-11-10 14:54:23 -08:00
Tj Holowaychuk
61ce6c59c2 misc 2011-11-10 14:48:00 -08:00
Tj Holowaychuk
205a1a14c7 Aded app.locals.use() precedence tests 2011-11-10 14:14:09 -08:00
Tj Holowaychuk
6709ab5f27 jade 0.17.x 2011-11-10 13:55:21 -08:00
Tj Holowaychuk
2d77279c94 Merge branch 'view-signature' 2011-11-10 13:42:14 -08:00
Tj Holowaychuk
e9d7b6fbad Changed template engine signature to engine.__express(path, options, fn). Closes #878 2011-11-10 13:42:08 -08:00
Tj Holowaychuk
3e6171c7ff Fixed express(1) LF -> CRLF for windows. Closes #875 2011-11-10 12:29:49 -08:00
Tj Holowaychuk
04389fd6ff test for invalid cookie signature 2011-11-10 12:20:13 -08:00
Tj Holowaychuk
a47b599048 Added req.signedCookies tests 2011-11-10 12:18:16 -08:00
Tj Holowaychuk
58eddd5ab4 Added res.signedCookie() and tests. Closes #880 2011-11-10 12:14:33 -08:00
Tj Holowaychuk
7ac857acef Added JSON cookie support & tests. Closes #879 2011-11-10 12:04:21 -08:00
Tj Holowaychuk
e27b224933 make sure req/res protos are app-specific 2011-11-10 11:31:38 -08:00
Tj Holowaychuk
4f087df286 Added res proto mutation test 2011-11-10 11:29:35 -08:00
Tj Holowaychuk
87f6f6a3e3 Added app.request test 2011-11-10 11:25:54 -08:00
Tj Holowaychuk
94d1e94cf2 Added app.{request,response} 2011-11-10 11:21:24 -08:00
Tj Holowaychuk
d249868e07 no longer manipulate the req/res protos directly 2011-11-10 11:18:43 -08:00
Tj Holowaychuk
429e48d873 Added app.locals.settings test 2011-11-10 08:36:18 -08:00
Tj Holowaychuk
abb414c702 Added app.locals.use() arity < 3 test 2011-11-10 08:26:36 -08:00
Tj Holowaychuk
8f45dd4190 Added res.render() absolute path tests 2011-11-10 08:24:10 -08:00
Tj Holowaychuk
d9098c5fcd more tests 2011-11-10 08:23:12 -08:00
Tj Holowaychuk
b9dee730a8 Fixed app.render() absolute path support 2011-11-10 08:22:42 -08:00
Tj Holowaychuk
26c62a667f Added app.locals.use() test 2011-11-10 08:19:57 -08:00
Tj Holowaychuk
7d42ad00ff Removed "status" and "charset" options 2011-11-10 07:47:04 -08:00
Tj Holowaychuk
4a5776b513 more res.locals tests 2011-11-09 17:02:55 -08:00
Tj Holowaychuk
f68ba2ef35 refactoring 2011-11-09 16:56:57 -08:00
Tj Holowaychuk
a95a0ab5f9 using connects error code util 2011-11-09 16:27:48 -08:00
Tj Holowaychuk
30911f4a75 Added failing res.sendfile() test for 403 + callback 2011-11-09 16:14:38 -08:00
Tj Holowaychuk
c9f184c8d5 Added res.sendfile() ENOENT test 2011-11-09 16:11:46 -08:00
Tj Holowaychuk
545f1fd07d Added first res.sendfile() callback test 2011-11-09 16:06:12 -08:00
Tj Holowaychuk
2f762265a8 Added forbidden tests 2011-11-09 16:03:42 -08:00
Tj Holowaychuk
7e6d8f39b4 Added res.sendfile() "root" setting test 2011-11-09 15:56:24 -08:00
Tj Holowaychuk
bea74b7711 Fixed res.sendfile() 404s 2011-11-09 15:54:51 -08:00
Tj Holowaychuk
10e8dc57eb added failing res.sendfile() test on 404 2011-11-09 15:51:11 -08:00
Tj Holowaychuk
f7b6dde086 refactored previous commit 2011-11-09 15:41:51 -08:00
Tj Holowaychuk
2fa36fa721 res.sendfile() tests 2011-11-09 15:39:53 -08:00
Tj Holowaychuk
40f8202402 utilize res.headerSent from connect 2011-11-09 15:38:48 -08:00
Tj Holowaychuk
4b0b55c1b7 misc refactoring 2011-11-09 15:33:54 -08:00
Tj Holowaychuk
0e395973c9 Added res.attachment() tests 2011-11-09 15:31:31 -08:00
Tj Holowaychuk
1f53cdb62d Added error in res.render() callback test 2011-11-09 15:21:38 -08:00
Tj Holowaychuk
c32023d8ed Added "charset" option test 2011-11-09 15:17:44 -08:00
Tj Holowaychuk
d2f98940d8 Added status option test 2011-11-09 15:15:55 -08:00
Tj Holowaychuk
536b16c7a9 Added res.render() callback with locals test 2011-11-09 15:11:07 -08:00
Tj Holowaychuk
9bfeae2df1 Added res.render() callback tests 2011-11-09 15:09:47 -08:00
Tj Holowaychuk
4d450ea25e local precedence tests 2011-11-09 15:04:52 -08:00
Tj Holowaychuk
84f01d1e30 Added res.render() tests 2011-11-09 15:00:40 -08:00
Tj Holowaychuk
1a5636b199 case sensitivity test 2011-11-08 20:29:48 -08:00
Tj Holowaychuk
af46df7eae Removed req.isXMLHttpRequest
let me know if you actually use this :)
2011-11-08 20:28:55 -08:00
Tj Holowaychuk
801a1791d6 Added req.xhr tests 2011-11-08 20:28:06 -08:00
Tj Holowaychuk
333cf0b280 Added req.path test 2011-11-08 20:25:34 -08:00
Tj Holowaychuk
52e26697a9 Added index.<engine> render test 2011-11-08 20:22:27 -08:00
Tj Holowaychuk
fdf620b688 more tests 2011-11-08 20:18:07 -08:00
Tj Holowaychuk
66f8ca52d6 Added app.engine() tests 2011-11-08 20:14:53 -08:00
Tj Holowaychuk
f98c1127a6 Added app.render() local precedence test 2011-11-08 20:09:13 -08:00
Tj Holowaychuk
7e352fe28d Added app.render() app.locals test 2011-11-08 20:07:49 -08:00
Tj Holowaychuk
d3b48e2fd5 Added more app.render() tests 2011-11-08 20:06:15 -08:00
Tj Holowaychuk
23159c094d Added app.render() tests 2011-11-08 20:00:03 -08:00
Tj Holowaychuk
2e22887f71 docs 2011-11-08 19:55:41 -08:00
Tj Holowaychuk
c9b04b8be7 Added app.locals(obj) test 2011-11-08 19:54:46 -08:00
Tj Holowaychuk
2c0e13b513 Added res.locals(obj) test 2011-11-08 19:53:22 -08:00
Tj Holowaychuk
2937309f00 Added res.charset tests 2011-11-08 19:46:38 -08:00
Tj Holowaychuk
377056a33c Removed "charset" option 2011-11-08 19:44:16 -08:00
Tj Holowaychuk
f42ce5be2b qs 0.3.2 to fix global var leak 2011-11-08 19:43:12 -08:00
Tj Holowaychuk
ddeee9b6db Added req.query tests 2011-11-08 19:27:09 -08:00
Tj Holowaychuk
6bee32c174 removed a file i didnt mean to add :) 2011-11-08 19:18:25 -08:00
Tj Holowaychuk
11f55a06dd Added app.redirect() tests 2011-11-08 19:17:03 -08:00
Tj Holowaychuk
6a2d6b872b pending 2011-11-08 19:10:09 -08:00
Tj Holowaychuk
d8787867c4 tweak test 2011-11-08 19:01:20 -08:00
Tj Holowaychuk
43d9f6ea17 tweak res.redirect() mount route logic 2011-11-08 18:59:40 -08:00
Tj Holowaychuk
1faba1302f tmp fix 2011-11-08 18:51:15 -08:00
Tj Holowaychuk
55ee0a0934 Added relative redirect test 2011-11-08 18:46:23 -08:00
Tj Holowaychuk
0653f73779 Added res.redirect() content-negotiation tests 2011-11-08 18:41:26 -08:00
Tj Holowaychuk
7a24021dc9 more res.redirect() tests 2011-11-08 18:40:01 -08:00
Tj Holowaychuk
9f2fe94484 Added res.redirect() test 2011-11-08 18:36:27 -08:00
Tj Holowaychuk
a3950b5638 Added maxAge test 2011-11-08 18:33:00 -08:00
Tj Holowaychuk
8c03428279 Added res.cookie() options test 2011-11-08 18:30:48 -08:00
Tj Holowaychuk
f4d7ea386d Added res.cookie() "root" setting test 2011-11-08 18:28:59 -08:00
Tj Holowaychuk
bee0496cb1 Fixed res.cookie() path default 2011-11-08 18:28:22 -08:00
Tj Holowaychuk
5960b90efe Added res.cookie() tests 2011-11-08 18:27:18 -08:00
Tj Holowaychuk
0f2f3d4e29 Fixed res.clearCookie(), default path to "root" setting 2011-11-08 18:25:21 -08:00
Tj Holowaychuk
bc673bef79 Added res.clearCookie() tests 2011-11-08 18:21:08 -08:00
Tj Holowaychuk
3fb7391b97 Added res.set(object) and res.set(field, value) tests 2011-11-08 18:15:31 -08:00
Tj Holowaychuk
442cd7515d Added res.type() test 2011-11-08 18:13:10 -08:00
Tj Holowaychuk
a013ffe547 Added res.json(status, object) test 2011-11-08 17:57:25 -08:00
Tj Holowaychuk
835558229f refactored tests 2011-11-08 17:55:41 -08:00
Tj Holowaychuk
dce23c79a1 Added res.json() tests 2011-11-08 17:54:36 -08:00
Tj Holowaychuk
4106bae79e generated helper test methods from express.methods 2011-11-08 17:47:47 -08:00
Tj Holowaychuk
b756474d9d Added res.send() HEAD tests 2011-11-08 17:46:08 -08:00
Tj Holowaychuk
b0c9209726 Added res.send() 304 / 204 tests 2011-11-08 17:44:05 -08:00
Tj Holowaychuk
c96b778771 dot reporter 2011-11-08 17:40:41 -08:00
Tj Holowaychuk
d0d721d80b Added res.send(Object) test 2011-11-08 17:40:20 -08:00
Tj Holowaychuk
7b50a78662 Added res.send(null || undefined) tests 2011-11-08 17:38:18 -08:00
Tj Holowaychuk
aa869c637a Added res.send() content-type tests 2011-11-08 17:36:24 -08:00
Tj Holowaychuk
f467fe1cbf Added res.send(Buffer) test 2011-11-08 17:34:04 -08:00
Tj Holowaychuk
15fd639cd9 Added res.send(String) test 2011-11-08 17:32:58 -08:00
Tj Holowaychuk
f96f2cf56e Added res.send(code, body) test 2011-11-08 17:31:51 -08:00
Tj Holowaychuk
b0f6278cea Added res.send(code) test 2011-11-08 17:30:29 -08:00
Tj Holowaychuk
ae7bac9a6b Added res.header() chaining test 2011-11-08 17:29:01 -08:00
Tj Holowaychuk
c8997204d4 Added res.header() tests 2011-11-08 17:27:05 -08:00
Tj Holowaychuk
a2c51984a8 Added res.get(field) test 2011-11-08 17:25:05 -08:00
Tj Holowaychuk
ed93e33d59 another test 2011-11-08 17:23:53 -08:00
Tj Holowaychuk
6e15b1cd20 Removed mock from res.status() test, mocks are lame 2011-11-08 17:23:14 -08:00
Tj Holowaychuk
cc2513facf res.status(code) test 2011-11-08 17:18:44 -08:00
Tj Holowaychuk
e303dcc915 multi-env configure() callbacks 2011-11-08 17:15:09 -08:00
Tj Holowaychuk
8ad17abb7b app.configure() tests 2011-11-08 17:13:16 -08:00
Tj Holowaychuk
5b296b5257 middleware tests
that dont quite work yet because node is being a PITA
2011-11-08 17:02:15 -08:00
Tj Holowaychuk
1a5c32f3ef setting up middleware tests 2011-11-08 16:00:44 -08:00
Tj Holowaychuk
a15e745d42 test for application prototype 2011-11-08 15:45:30 -08:00
Tj Holowaychuk
d17dd3e3d8 more config tests 2011-11-08 15:42:22 -08:00
Tj Holowaychuk
51a5c829bb config test 2011-11-08 15:40:34 -08:00
Tj Holowaychuk
8a91749e12 merged 2011-11-08 15:25:56 -08:00
Tj Holowaychuk
42fc0f9ee8 more tests 2011-11-08 15:23:02 -08:00
Tj Holowaychuk
17ccd55d11 upgrade should 2011-11-08 15:19:53 -08:00
Tj Holowaychuk
b8a589d76f first new test 2011-11-08 15:19:19 -08:00
Tj Holowaychuk
becf6d9413 Added mocha dev-dep 2011-11-08 15:07:31 -08:00
Tj Holowaychuk
9efc4b23dc Remove old tests 2011-11-08 15:05:47 -08:00
Tj Holowaychuk
6b1dc31759 version -pre so people are less confused 2011-11-04 09:06:45 -07:00
Tj Holowaychuk
9205d632cc Fixing express(1) for upcomming express 2011-11-04 09:06:23 -07:00
Tj Holowaychuk
a751346b20 port some express(1) stuff from 2.x 2011-11-04 09:01:43 -07:00
Tj Holowaychuk
8111a19307 Removed sass.js support from express(1) 2011-11-04 08:36:09 -07:00
TJ Holowaychuk
860b4f1a3b Merge pull request #873 from gugu/master
Express depends on commander@0.0.4, which does not support node.js 5
2011-10-30 12:25:11 -07:00
Andrii Kostenko
a5b1aa9ca7 Update package.json 2011-10-30 23:20:05 +04:00
Tj Holowaychuk
62257bce18 Added app.routes, replacing app.routes.all(). Closes #811 2011-10-14 17:51:23 -07:00
Tj Holowaychuk
0ed74aa68b added an array of routes 2011-10-14 17:48:57 -07:00
Tj Holowaychuk
e0bd0d6470 Added app.get(setting). Closes #842 2011-10-14 17:37:23 -07:00
Tj Holowaychuk
b433550556 refactored res.render() 2011-10-14 08:46:02 -07:00
Tj Holowaychuk
04ebd8875b Fixed express(1) public dir for windows. Closes #866 2011-10-14 08:38:33 -07:00
Tj Holowaychuk
1a1ed0ae45 semicolons 2011-10-13 09:46:48 -07:00
Tj Holowaychuk
d6fabb6f8e move getters down 2011-10-13 09:46:26 -07:00
Tj Holowaychuk
08e8194db1 Merge branch 'master' of github.com:visionmedia/express 2011-10-13 09:45:59 -07:00
Tj Holowaychuk
0e4e050b21 Added req.fresh and req.stale
lame usage example:

app.get('/user/:id', function(req, res){
  var id = req.params.id;

  res.set('ETag', 'user-' + id);

  if (req.fresh) return res.send(304);
  setTimeout(function(){
    res.send('large expensive user response ' + id);
  }, 2000);
});
2011-10-13 09:43:31 -07:00
Tj Holowaychuk
de17b285b1 Added req.secure 2011-10-11 09:45:01 -07:00
TJ Holowaychuk
f640d0973d Merge pull request #863 from JonDum/master
Added JSHTML template engine for cli helper :)
2011-10-10 21:52:31 -07:00
Jonathan Dumaine
47ff0dc0cc Add JSHTML template engine for cli helper
JSHTML is a express compatible template engine 
with very nice syntax.

https://github.com/LuvDaSun/jshtml
2011-10-10 21:49:44 -07:00
Tj Holowaychuk
965e1d63dc added sync signature for app.locals.use() 2011-10-09 13:08:20 -07:00
Tj Holowaychuk
73f1da2ff7 Added replacement for dynamic locals. Closes #788 2011-10-09 13:01:32 -07:00
Tj Holowaychuk
0f6ad43e91 app.locals.use(fn) 2011-10-09 12:54:15 -07:00
Tj Holowaychuk
8d804a6c4a removed old app.locals() 2011-10-09 12:51:27 -07:00
Tj Holowaychuk
02f48aabbf map register function 2011-10-07 15:25:16 -07:00
Tj Holowaychuk
d4b08e9566 misc 2011-10-07 15:18:00 -07:00
Tj Holowaychuk
9f1f58fd4b non-enumerable .router for Collection 2011-10-07 15:13:13 -07:00
Tj Holowaychuk
4ed92d50e0 misc refactoring 2011-10-07 15:12:24 -07:00
Tj Holowaychuk
8848004cb7 refactoring boot logic 2011-10-07 15:10:30 -07:00
Tj Holowaychuk
371b381074 more refactoring 2011-10-07 15:04:08 -07:00
Tj Holowaychuk
6d47011dcf View#contents() 2011-10-07 15:01:36 -07:00
Tj Holowaychuk
705cdb6368 misc refactoring 2011-10-07 15:00:20 -07:00
Tj Holowaychuk
90fc80fd87 docs 2011-10-07 14:59:42 -07:00
Tj Holowaychuk
041974ee01 added index lookup support back 2011-10-07 14:58:58 -07:00
Tj Holowaychuk
7369d861ca docs 2011-10-07 14:52:26 -07:00
Tj Holowaychuk
e1da383aed new View 2011-10-07 14:51:06 -07:00
Tj Holowaychuk
6bcf29152f misc refactoring 2011-10-07 14:25:09 -07:00
Tj Holowaychuk
8a38211bd9 re-implemented "view cache" 2011-10-07 14:16:05 -07:00
Tj Holowaychuk
cb2b9feb5f docs 2011-10-07 14:13:13 -07:00
Tj Holowaychuk
c2d5d5619b lookup callback 2011-10-07 14:12:37 -07:00
Tj Holowaychuk
76b7d6975f app.lookup() 2011-10-07 14:11:08 -07:00
Tj Holowaychuk
7e9186d1ae removed hints setting 2011-10-07 14:08:06 -07:00
Tj Holowaychuk
d1ce4c9923 req.query is always present 2011-10-07 14:04:59 -07:00
Tj Holowaychuk
fed7fa4cd2 removed old parseRange util 2011-10-07 13:56:14 -07:00
Tj Holowaychuk
0d0125fc29 removed union util 2011-10-07 13:50:59 -07:00
Tj Holowaychuk
98e2c0522f merging res.locals 2011-10-07 13:50:31 -07:00
Tj Holowaychuk
294bc8c1d7 misc refactoring 2011-10-07 13:34:03 -07:00
Tj Holowaychuk
ae11d83684 typo 2011-10-07 13:31:12 -07:00
Tj Holowaychuk
aab9b08ec2 added charset option back 2011-10-07 13:30:33 -07:00
Tj Holowaychuk
31ff7db019 added status support back 2011-10-07 13:29:25 -07:00
Tj Holowaychuk
c40c54fbee request-level render() 2011-10-07 13:27:43 -07:00
Tj Holowaychuk
cecbaf2efe removed old view.js 2011-10-07 13:22:55 -07:00
Tj Holowaychuk
e90413243e use app.engines instead of app.cache 2011-10-07 13:21:01 -07:00
Tj Holowaychuk
a9396efeaf added app.register() 2011-10-07 13:19:29 -07:00
Tj Holowaychuk
60353c6d05 misc refactoring 2011-10-07 13:13:57 -07:00
Tj Holowaychuk
7b5ed50786 expose prototype 2011-10-07 13:13:32 -07:00
Tj Holowaychuk
02baa2b17c removed old http.js 2011-10-07 13:12:53 -07:00
Tj Holowaychuk
d0585bd910 application.js 2011-10-07 13:10:15 -07:00
Tj Holowaychuk
adf7124446 removed extra require() 2011-10-07 13:07:55 -07:00
Tj Holowaychuk
7710db4591 re-working view system 2011-10-07 13:07:19 -07:00
Tj Holowaychuk
ce03cf49d8 uncommented old code 2011-10-07 10:01:30 -07:00
Tj Holowaychuk
65c0d14a4e expose connect middleware as express.* again 2011-10-07 10:00:10 -07:00
Tj Holowaychuk
667ed6fcf5 using connect.proto.use 2011-10-07 09:29:36 -07:00
Tj Holowaychuk
d7da40642d removed old https inheritance logic 2011-10-07 09:24:17 -07:00
Tj Holowaychuk
d6b5047511 setting up proto 2011-10-07 09:23:54 -07:00
Tj Holowaychuk
3b5a751b25 add connect repo as dep for now, since 2.0.0alpha blew everything up 2011-10-07 09:18:04 -07:00
Tj Holowaychuk
8a7491c97a "node":">= 0.5.0 < 0.7.0" 2011-10-05 15:08:50 -07:00
Tj Holowaychuk
b3cab31cf7 connect 2.x dep 2011-10-05 15:04:43 -07:00
Tj Holowaychuk
021655a10a Added support for res.set(obj). Closes #834 2011-10-05 14:34:00 -07:00
Tj Holowaychuk
e301d43704 Changed res.redirect() signature to accept status first. Closes #832
to match the others
2011-10-05 14:24:57 -07:00
Tj Holowaychuk
54c1a208c3 Added res.type() alias of res.contentType() 2011-09-28 10:27:13 -07:00
Tj Holowaychuk
ad9bbda708 bench against loopback 2011-09-27 16:55:49 -07:00
Tj Holowaychuk
341e167eab comma last! 2011-09-21 15:35:30 -07:00
Tj Holowaychuk
fb031d1ad5 Added mkdirp to express(1). Closes #795 2011-09-21 08:25:47 -07:00
Tj Holowaychuk
d3937b9a61 Fixed res.redirect() HEAD support 2011-09-07 10:03:17 -07:00
Tj Holowaychuk
2c734e2e4c refactored res.send() 2011-09-07 10:02:27 -07:00
Tj Holowaychuk
77d8823261 misc refactoring 2011-09-06 15:19:05 -07:00
Tj Holowaychuk
6f85c14738 docs 2011-09-06 15:18:15 -07:00
Tj Holowaychuk
edb1dc067a Fixed req.notify(), only escape args 2011-09-06 15:15:52 -07:00
Tj Holowaychuk
6b161d5389 Removed npm test script 2011-08-31 09:32:37 -07:00
Tj Holowaychuk
c21e3feaa6 Fixed absolute path checking on windows. Closes #829 [reported by andrewpmckenzie] 2011-08-29 08:40:42 -07:00
Tj Holowaychuk
a25ef01da3 Fixed multiple param callback regression. Closes #824 [reported by TroyGoode] 2011-08-22 10:05:16 -07:00
Tj Holowaychuk
0534266490 Merge branch 'master' of github.com:visionmedia/express 2011-08-22 10:05:13 -07:00
Tj Holowaychuk
71aca3c199 fixed some tests 2011-08-22 09:51:22 -07:00
TJ Holowaychuk
72fab80a74 Merge pull request #821 from pikeas/patch-1
Fixing typo: interacte -> interact
2011-08-21 10:40:42 -07:00
pikeas
c8ab058842 Fixing typo: interacte -> interact 2011-08-22 16:11:15 +09:00
Tj Holowaychuk
b166fd7d6e local -> localhost
most people wont have things set up the same as me
so this is probably not a good idea :D
2011-08-20 15:53:16 -07:00
Tj Holowaychuk
9545face97 mime 1.2.2 dep 2011-08-20 04:29:19 -07:00
Tj Holowaychuk
6dacd51b81 connect 1.6.2 dep 2011-08-20 04:28:48 -07:00
Tj Holowaychuk
571a182712 Added logger() to generated express(1) app 2011-08-20 04:02:33 -07:00
Tj Holowaychuk
e3aabdc2bc Added make benchmark for experimental continuous-benchmarking tool 2011-08-20 03:19:59 -07:00
Tj Holowaychuk
4d8d5b12f2 Release 2.4.5 2011-08-19 10:18:57 -07:00
Tj Holowaychuk
5785e7e2e5 removed dynamicHelpers 2011-08-19 10:07:19 -07:00
Tj Holowaychuk
81f311105c removed app.helpers() use app.locals() 2011-08-19 10:05:47 -07:00
Tj Holowaychuk
ad3679fcb8 haha... 2011-08-19 10:05:25 -07:00
Tj Holowaychuk
29508f1cc7 changed -css, --template to --stylus, --ejs
we can add more as we go
2011-08-18 17:25:32 -07:00
Tj Holowaychuk
426ba62348 rewrote express(1) to use commander.js 2011-08-18 17:21:39 -07:00
Tj Holowaychuk
d2df055abe fixed res.sendfile() 404 support 2011-08-18 15:59:35 -07:00
Tj Holowaychuk
d3ccdbcf72 build res.download() on top of res.sendfile()
like it should have always been
2011-08-18 15:43:19 -07:00
Tj Holowaychuk
7a476fc964 make res.sendfile() more like res.download(). Closes #774 2011-08-18 15:38:22 -07:00
Tj Holowaychuk
5da28be2b2 refactored res.sendfile() 2011-08-18 15:28:19 -07:00
Tj Holowaychuk
0932bdea30 OCD 2011-08-18 14:35:56 -07:00
Tj Holowaychuk
75054e17cf Refactored Route to use a single array of callbacks 2011-08-17 15:50:15 -07:00
Tj Holowaychuk
664907f02e fixed route error handlers when errors are thrown 2011-08-17 14:39:32 -07:00
Tj Holowaychuk
f977272732 Added support for routes to handle errors. Closes #809
currently only the route end-point callbacks
support this, however this will change in the near future
to support route middleware etc
2011-08-17 14:33:23 -07:00
Tj Holowaychuk
d10b7b43ea Added shorthand for the parsed request's pathname 2011-08-17 14:20:10 -07:00
Tj Holowaychuk
e9abe1b846 Merged basepath setting. Closes #813 2011-08-17 10:13:25 -07:00
Tj Holowaychuk
cc21f38664 qs >= 0.3.1 2011-08-17 07:53:45 -07:00
Tj Holowaychuk
34606c26f0 use nextRoute() internally 2011-08-16 18:30:01 -07:00
Tj Holowaychuk
be9d66a574 Changed: removed .call(self) for route callbacks
not sure why we had this, ive never even used it
and the tests dont cover it, and its slower
2011-08-16 18:28:48 -07:00
Tj Holowaychuk
ed9fcde499 Added app.routes.all(). Closes #803
not a huge fan of this API-wise, but at least it is something for now
2011-08-16 17:52:39 -07:00
Tj Holowaychuk
3c2139b0c3 Fixed res.redirect() on windows due to join() usage. Closes #808 2011-08-15 13:47:07 -07:00
Tj Holowaychuk
7eeec91ab5 russian docs 2011-08-14 09:36:07 -07:00
Tj Holowaychuk
fdd43ee448 link to russian docs booyah! 2011-08-14 09:35:03 -07:00
Tj Holowaychuk
ca75492512 Added support for multiple callbacks for app.param(). Closes #801
you can also make several calls to `app.param()` for the same
param name, which is equivalent to passing multiple in
a single call
2011-08-11 11:09:36 -07:00
Tj Holowaychuk
a2a7644794 added another test 2011-08-11 10:12:22 -07:00
Tj Holowaychuk
91aebc758c Added test for app.param(fn) 2011-08-11 10:11:09 -07:00
Tj Holowaychuk
ca0d29d811 expose list of http methods supported 2011-08-10 16:12:21 -07:00
Tj Holowaychuk
c8c6aa2a1f Added res.get(field) as an alternative to res.header(field) 2011-08-10 14:15:37 -07:00
Tj Holowaychuk
19a1a22e63 Added res.set(field, val) as an alternative to res.header() 2011-08-10 14:13:36 -07:00
Tj Holowaychuk
c729d62f89 another sidebar 2011-08-08 17:33:50 -07:00
Tj Holowaychuk
1793b50e6b sidebar example 2011-08-08 17:25:54 -07:00
Tj Holowaychuk
23dbe6a5f0 better layout control example 2011-08-08 17:15:13 -07:00
Tj Holowaychuk
509601e617 fixed app.locals precedence 2011-08-08 17:01:07 -07:00
Tj Holowaychuk
d58beed752 Removed default local "app" 2011-08-08 16:51:41 -07:00
Tj Holowaychuk
fd5d1076dc make req.notify() arity based 2011-08-08 16:45:22 -07:00
Tj Holowaychuk
05b76a1f93 prepping blog example for new express 2011-08-08 16:40:09 -07:00
Tj Holowaychuk
f84ec803a4 use "dev" logger in blog example 2011-08-08 16:27:20 -07:00
Tj Holowaychuk
c35cd7fcb7 Changed res.{send,json}() status code to the first arg at all times 2011-08-04 13:30:12 -07:00
Tj Holowaychuk
bb9d50579b docs 2011-08-04 12:01:11 -07:00
Tj Holowaychuk
54d37512f5 Refactored res.header() 2011-08-03 20:00:39 -07:00
Tj Holowaychuk
c516be8c4b added header.jade to jade example 2011-08-02 09:01:42 -07:00
Tj Holowaychuk
82c78ec8f9 semi 2011-07-29 11:02:50 -07:00
Tj Holowaychuk
b1d4b71609 Refactored req.accepts() 2011-07-29 11:02:20 -07:00
Tj Holowaychuk
7440c7ddc7 more tests 2011-07-29 09:55:52 -07:00
Tj Holowaychuk
624dad5a78 Merge branch 'integration' 2011-07-29 09:40:18 -07:00
Arpad Borsos
f4080210bd specialcase .:format routing to not include a dot in the capture group 2011-07-29 09:37:51 -07:00
Tj Holowaychuk
c631eb43e3 Fixed 204 / 304 responses 2011-07-29 09:31:45 -07:00
Tj Holowaychuk
376bedf624 Changed res.send(null) responds with empty string
previously you would just get "null",
which is fine for res.json() but probably
not the best result for res.send()
2011-07-29 09:30:35 -07:00
Tj Holowaychuk
36e9c02f6f fixed a response test 2011-07-29 09:26:58 -07:00
Tj Holowaychuk
8f798569a8 fixed a jade test 2011-07-29 09:22:05 -07:00
Tj Holowaychuk
8c0e47baf9 more tests for routing 2011-07-27 09:02:31 -07:00
Tj Holowaychuk
461473e48e more tests 2011-07-27 09:00:53 -07:00
Tj Holowaychuk
8b1f109c1d renamed a test 2011-07-27 09:00:07 -07:00
Tj Holowaychuk
e005cb31d8 Merge branch 'master' of github.com:visionmedia/express 2011-07-27 08:59:27 -07:00
Tj Holowaychuk
579836e221 docs 2011-07-27 08:58:58 -07:00
ctide
b977ee6160 Fix the behavior for setting up routes with * in them. 2011-07-27 08:58:23 -07:00
TJ Holowaychuk
ddce65b9dd Merge pull request #777 from purohit/master
Simple misspelling fix.
2011-07-25 17:59:57 -07:00
Ashwin Purohit
e0e1105965 Fixing the misspelling of "manor" with "manner" in the 4 places it occurs. 2011-07-25 17:02:23 -07:00
Tj Holowaychuk
1f520f9f99 added express-resource to readme 2011-07-25 11:20:32 -07:00
Tj Holowaychuk
05a929deb6 tweak generated stylus 2011-07-25 11:15:15 -07:00
Tj Holowaychuk
5ac5352e33 Fixed [23]04 support 2011-07-22 08:35:33 -07:00
Tj Holowaychuk
787a555253 Added route-loading example for another route loading technique
using the vm module you can expose the route files at the root
level which IMO is nicer than module.exports = function(app){ etc
2011-07-20 12:33:53 -07:00
Tj Holowaychuk
388b84e858 node >= 0.4.9 < 0.7.0 for now 2011-07-19 16:14:48 -07:00
Tj Holowaychuk
7ffd17254a 3.0.0alpha1 soon
mainly so windows users can start playing
around with express, i will have a ton
of these alphas
2011-07-19 16:13:29 -07:00
Tj Holowaychuk
00affe187c update jade dev dep 2011-07-19 14:43:53 -07:00
Tj Holowaychuk
05844efbd6 qs >= 0.3.0 2011-07-19 12:08:39 -07:00
Tj Holowaychuk
3ab37028fc Removed req.flash() references
it will be req.notify(), req.session.notifications etc
2011-07-15 13:09:38 -07:00
Tj Holowaychuk
3a04888c5f docs 2011-07-15 12:12:46 -07:00
Tj Holowaychuk
6bd518241a refactored res.redirect() slightly 2011-07-15 11:56:39 -07:00
Tj Holowaychuk
a3cddb856f Changed res.{cookie,clearCookie}() return res 2011-07-15 11:55:03 -07:00
Tj Holowaychuk
4b8e08d202 another req.is() example 2011-07-15 11:52:43 -07:00
Tj Holowaychuk
9413d30396 Added req.notify() alias of req.flash() 2011-07-15 11:36:52 -07:00
Tj Holowaychuk
5982fa63c6 refactored req.flash() 2011-07-15 11:36:02 -07:00
Tj Holowaychuk
a4621a6418 refactored req.param() 2011-07-15 11:33:57 -07:00
Tj Holowaychuk
7eec21a5e6 examples 2011-07-15 11:31:47 -07:00
Tj Holowaychuk
96b72fe2f7 Renamed app.flashFormatters to app.formatters 2011-07-15 11:04:25 -07:00
Tj Holowaychuk
c7c9606e87 Added %d flash formatter 2011-07-15 10:57:15 -07:00
Tj Holowaychuk
772c135d98 Merge branch 'remove-header-fields' 2011-07-15 10:52:17 -07:00
Tj Holowaychuk
365b3a76ba fixed tests 2011-07-15 10:52:11 -07:00
Tj Holowaychuk
41568b7f2a chainable res.header() 2011-07-15 10:47:38 -07:00
Tj Holowaychuk
d853f6cf0e fixed some tests 2011-07-15 10:38:19 -07:00
Tj Holowaychuk
bcfcce32d3 Removed header field support 2011-07-15 10:38:19 -07:00
Tj Holowaychuk
986916cf3e removed old dynamic helper logic from the view system 2011-07-15 10:31:52 -07:00
Tj Holowaychuk
d689656775 precedence test 2011-07-15 10:30:51 -07:00
Tj Holowaychuk
8c56df7322 view system utilizing app.locals 2011-07-15 10:27:53 -07:00
Tj Holowaychuk
1dc87761a0 Changed app.locals to match res.locals 2011-07-15 10:13:21 -07:00
Tj Holowaychuk
cd88b92587 Removed app.dynamicLocals(). Closes #756 2011-07-15 10:06:49 -07:00
Tj Holowaychuk
eab03fdfc4 utilize connects new query() middleware 2011-07-15 10:03:46 -07:00
Tj Holowaychuk
9a8b86872d Replaced res.local[s]() with res.locals function. Closes #757 2011-07-15 10:01:31 -07:00
Tj Holowaychuk
04ce039ba4 Merge branch 'master' of github.com:visionmedia/express 2011-07-14 13:19:48 -07:00
Tj Holowaychuk
9605cbda45 misc 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
3ec2739925 Removed "view options" setting. Closes #748 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
d250bf9b56 docs for previous commit 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
6ebccb0518 Added "charset" option 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
b30efe4e2f misc refactoring 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
c275d279fc Added app.dynamicLocal(name, fn) 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
7237a3c3b6 app.local() and res.local() return for chaining 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
f98896f6d7 Added app.local(name, val) 2011-07-14 12:59:14 -07:00
Tj Holowaychuk
bcb2cdae4c app.helpers -> app.locals 2011-07-14 12:59:13 -07:00
Tj Holowaychuk
08159211a3 app.dynamicHelpers -> app.dynamicLocals 2011-07-14 12:59:13 -07:00
Tj Holowaychuk
232b6ab7ef Removed res.send() with no args support for 204
just use:

   res.send(204)
2011-07-14 12:59:13 -07:00
Tj Holowaychuk
3d2676d013 Removed res.helpers() alias of res.locals() 2011-07-14 12:59:13 -07:00
Tj Holowaychuk
477d06f990 removed old app.error() docs 2011-07-14 12:59:13 -07:00
Tj Holowaychuk
ed19885ba1 removed old error handling docs 2011-07-14 12:59:13 -07:00
Tj Holowaychuk
297ae6fdb4 removed use of app.error() in examples 2011-07-14 12:59:13 -07:00
Tj Holowaychuk
456a985666 Removed app.error(). Closes #733
use trailing middleware with arity of 4 as
shown in this issue. They are functionally
equivalent
2011-07-14 12:59:13 -07:00
Tj Holowaychuk
261203d6c1 expresso 0.8.1 2011-07-14 12:59:13 -07:00
Dave Hoover
31262d2ea9 its is possessive, it's is shorthand for: it is 2011-07-14 12:59:13 -07:00
Tj Holowaychuk
c72abc5293 Release 2.4.3 2011-07-14 12:58:24 -07:00
Tj Holowaychuk
93189ad0b6 Fixed options.filename, exposing to template engines
this is useful for performing relative
lookups within the template engine itself,
without manually specifyin the path
2011-07-14 12:53:49 -07:00
Tj Holowaychuk
a8930b161e Fixed options.filename, exposing to template engines
this is useful for performing relative
lookups within the template engine itself,
without manually specifyin the path
2011-07-14 12:50:50 -07:00
Tj Holowaychuk
fa31d45285 misc 2011-07-11 14:58:40 -07:00
Tj Holowaychuk
914e4a4cf7 Removed "view options" setting. Closes #748 2011-07-11 13:19:00 -07:00
Tj Holowaychuk
f36d079f28 docs for previous commit 2011-07-11 13:12:55 -07:00
Tj Holowaychuk
17ddeef3ba Added "charset" option 2011-07-11 13:12:11 -07:00
Tj Holowaychuk
f0c90ce668 misc refactoring 2011-07-11 12:53:52 -07:00
Tj Holowaychuk
f19b312c48 Added app.dynamicLocal(name, fn) 2011-07-11 12:50:20 -07:00
Tj Holowaychuk
e899a54ba7 app.local() and res.local() return for chaining 2011-07-11 12:46:10 -07:00
Tj Holowaychuk
a4db994c2f Added app.local(name, val) 2011-07-11 12:43:31 -07:00
Tj Holowaychuk
f98f46c836 app.helpers -> app.locals 2011-07-11 12:37:35 -07:00
Tj Holowaychuk
336aaaec9a app.dynamicHelpers -> app.dynamicLocals 2011-07-11 12:36:33 -07:00
Tj Holowaychuk
b13ec8526e Removed res.send() with no args support for 204
just use:

   res.send(204)
2011-07-11 11:43:16 -07:00
Tj Holowaychuk
541020ff1b Removed res.helpers() alias of res.locals() 2011-07-11 11:22:25 -07:00
Tj Holowaychuk
9c153737b4 removed old app.error() docs 2011-07-11 11:18:29 -07:00
Tj Holowaychuk
7d53bb4064 removed old error handling docs 2011-07-11 11:18:15 -07:00
Tj Holowaychuk
4670751479 removed use of app.error() in examples 2011-07-11 11:13:07 -07:00
Tj Holowaychuk
8e058f16e4 Removed app.error(). Closes #733
use trailing middleware with arity of 4 as
shown in this issue. They are functionally
equivalent
2011-07-11 11:06:58 -07:00
Tj Holowaychuk
f519f0a5b3 Merge branch 'master' of github.com:visionmedia/express 2011-07-11 11:02:10 -07:00
Tj Holowaychuk
bb61304a49 expresso 0.8.1 2011-07-11 11:01:06 -07:00
TJ Holowaychuk
781d991eac Merge pull request #746 from redsquirrel/patch-1
typo
2011-07-09 13:24:17 -07:00
Dave Hoover
d04c1f93a3 its is possessive, it's is shorthand for: it is 2011-07-09 13:19:15 -07:00
Tj Holowaychuk
c0aab36187 Added docs for status option special-case. Closes #739 2011-07-07 09:09:34 -07:00
Tj Holowaychuk
5ae994ee8f Release 2.4.2 2011-07-06 20:15:44 -07:00
Tj Holowaychuk
60d16eab77 Revert "removed jsonp stripping"
This reverts commit 0ae18bca60.
2011-07-06 20:14:42 -07:00
Tj Holowaychuk
fc60dfc1a6 docs 2011-07-06 09:59:09 -07:00
Tj Holowaychuk
45d149c146 docs for multiple envs in app.configure() calls 2011-07-06 09:58:32 -07:00
Tj Holowaychuk
4dfc1a69c3 Release 2.4.1 2011-07-06 09:57:06 -07:00
Tj Holowaychuk
0ae18bca60 removed jsonp stripping
I cannot recall why I added this, doesnt make
sense to me now haha.
2011-07-06 09:45:21 -07:00
Tj Holowaychuk
2aaf0defe7 res.send() using res.json() 2011-07-06 09:32:16 -07:00
Tj Holowaychuk
73ea5cd7ee Added res.json() JSONP support. Closes #737 2011-07-06 09:31:37 -07:00
Tj Holowaychuk
e7f2d229ec added failing jsonp tests for res.json() 2011-07-06 09:25:10 -07:00
Tj Holowaychuk
87bc265817 moved jsonp tests 2011-07-06 09:24:08 -07:00
Tj Holowaychuk
796aaff295 connect 1.5.2 2011-07-06 09:07:09 -07:00
Tj Holowaychuk
8f87c50320 fixed connect-redis example 2011-07-05 09:55:04 -07:00
Tj Holowaychuk
ee4471b345 when cookie path === null dont default it 2011-07-04 13:51:08 -07:00
Tj Holowaychuk
6815feb8cf docs 2011-07-04 13:45:08 -07:00
Tj Holowaychuk
dbbe7be891 Added extending-templates example. Closes #730 2011-07-04 13:34:41 -07:00
Tj Holowaychuk
09c9452e5c Changed; default cookie path to "home" setting. Closes #731 2011-07-04 13:18:50 -07:00
Tj Holowaychuk
b0e669ba00 remove pids/logs creation from express(1)
just confused people
2011-07-04 13:05:13 -07:00
Tj Holowaychuk
f46ae9f3b2 docs 2011-07-04 09:20:35 -07:00
Tj Holowaychuk
9f2b344be8 Added support for multiple env app.configure() calls. Closes #735 2011-07-04 09:16:12 -07:00
Tj Holowaychuk
6b47271679 updated error-pages example 2011-07-01 14:14:46 -07:00
Tj Holowaychuk
6f7075be74 Added "strict routing" setting for trailing slashes
for people who are:

  a) over-optimizing seo
  b) working on fs-like APIs
2011-06-29 16:35:49 -07:00
Tj Holowaychuk
4b9cc3d698 docs 2011-06-28 11:27:51 -07:00
Tj Holowaychuk
3faa790b53 Release 2.4.0 2011-06-28 09:41:21 -07:00
Tj Holowaychuk
9477c9b516 docs for res.status() 2011-06-28 09:32:28 -07:00
Tj Holowaychuk
b04be51848 Added chainable res.status(code)
ex:

  res.status(500).send("lame")
2011-06-28 09:32:03 -07:00
Tj Holowaychuk
9e4020efd3 Merge branch 'feature/res-json' 2011-06-28 09:14:09 -07:00
Tj Holowaychuk
6db19db665 docs for res.json 2011-06-28 09:14:04 -07:00
Tj Holowaychuk
1386f80ae5 Added res.json() and tests 2011-06-28 09:11:54 -07:00
Tj Holowaychuk
e4342a7097 Added error handling to web-service example 2011-06-28 08:49:43 -07:00
Tj Holowaychuk
fda31b75f9 Added simple web-service example 2011-06-23 09:45:19 -07:00
Tj Holowaychuk
8ca0a45b33 hmac for auth example 2011-06-23 08:50:20 -07:00
Tj Holowaychuk
ce2bcaef68 Release 2.3.12 2011-06-22 13:56:13 -07:00
Tj Holowaychuk
0db7f26ad3 Fixed view layout bug. Closes #720
preventing custom relative layouts such as:

  views/
   users/
     user-layout.jade
2011-06-22 13:53:58 -07:00
Tj Holowaychuk
35370da458 screencasts have their own page 2011-06-21 15:16:46 -07:00
Tj Holowaychuk
fe6c5832c2 fixed docs charset 2011-06-21 15:15:38 -07:00
Tj Holowaychuk
e8c32df79c fixed some docs 2011-06-21 15:13:51 -07:00
Tj Holowaychuk
652e166462 updated docs 2011-06-21 15:08:17 -07:00
Tj Holowaychuk
af6385f8e4 docs 2011-06-21 15:06:49 -07:00
Tj Holowaychuk
f0277d3777 #express on freenode 2011-06-21 14:59:06 -07:00
Tj Holowaychuk
6bb100d7fa docs for req.get() 2011-06-21 10:48:34 -07:00
Tj Holowaychuk
f13ea34de3 typo 2011-06-21 10:46:07 -07:00
Tj Holowaychuk
48a14a443a Merge branch 'master' of github.com:visionmedia/express 2011-06-21 10:30:07 -07:00
Tj Holowaychuk
1820ea6f59 Merge branch 'param' 2011-06-21 10:29:08 -07:00
Tj Holowaychuk
4d9647923e Added req.get(field, param) 2011-06-21 10:29:04 -07:00
Tj Holowaychuk
943e9b3a28 connect >= 1.5.1 < 2.0.0 2011-06-20 23:20:33 -07:00
TJ Holowaychuk
6b2ec50a0b Merge pull request #709 from jzacsh/master
documentation: typo fix for view-lookup
2011-06-12 18:43:12 -07:00
Jonathan Zacsh
7b813b95b6 documentation spelling typo and URL fix. 2011-06-12 20:05:52 -04:00
TJ Holowaychuk
cdaa2e78d7 Merge pull request #707 from jakeg/patch-2
Updated connect-redis markdown docs
2011-06-12 11:07:09 -07:00
Jake Gordon
add53d3222 trying the .md file this time 2011-06-12 10:59:52 -07:00
TJ Holowaychuk
f4f79d2217 Merge pull request #706 from jakeg/patch-1
docs to show require('connect-redis')(express) re npm 1.x changes
2011-06-12 09:32:22 -07:00
Jake Gordon
aa36bc4516 Due to npm 1.x changes need to pass connect/express to the function connect-redis exports (see https://github.com/visionmedia/connect-redis) 2011-06-12 05:05:25 -07:00
Tj Holowaychuk
9028cacfd1 Fixed; ignore body on 304. Closes #701
should do the trick
2011-06-08 12:40:07 -07:00
Tj Holowaychuk
40ccb595cd "Japanese Documentation" in Japanese 日本語ドキュメンテーション :) 2011-06-07 09:46:28 -07:00
Tj Holowaychuk
5606d08ecb Links to Japanese documentation, thanks @hideyukisaito! 2011-06-07 09:41:16 -07:00
Tj Holowaychuk
1888d6fca1 Added; the express(1) generated app outputs the env
thanks nathan! totally thoguht I had this :D
2011-06-06 15:38:20 -07:00
Tj Holowaychuk
5d16e6b302 added content-negotiation example 2011-06-06 11:58:33 -07:00
Tj Holowaychuk
96f7574bc1 connect >= 1.4.3 < 2.0.0 2011-06-06 10:21:53 -07:00
Tj Holowaychuk
490584c8bc misc refactor 2011-06-06 09:20:29 -07:00
Tj Holowaychuk
0cbb1f661c typo 2011-06-06 08:55:30 -07:00
Tj Holowaychuk
3dc53e105a misc refactoring 2011-06-06 08:22:35 -07:00
Tj Holowaychuk
e2cdd760d8 Release 2.3.11 2011-06-04 10:50:10 -07:00
Tj Holowaychuk
4169202a41 removed generation of dummy test file from express(1) 2011-06-04 10:47:48 -07:00
Tj Holowaychuk
835982c561 added devDependencies to generated package.json 2011-06-04 10:45:21 -07:00
Tj Holowaychuk
b67bacea18 more refactoring of cookie example 2011-06-02 13:58:46 -07:00
Tj Holowaychuk
3205ee7d75 refactored cookie example 2011-06-02 13:57:54 -07:00
Tj Holowaychuk
ff7d5ff4e5 generate docs 2011-06-01 17:35:27 -07:00
Tj Holowaychuk
723774af27 added quick start to guide 2011-06-01 17:35:14 -07:00
Tj Holowaychuk
c3fbd3fe10 express(1) usage docs 2011-06-01 17:34:07 -07:00
Tj Holowaychuk
d1d3871550 Fixed; express(1) adds express as a dep
duh...
2011-06-01 17:29:48 -07:00
Tj Holowaychuk
5462c8c7ec prune on prepublish 2011-06-01 16:59:29 -07:00
Tj Holowaychuk
9536341e30 added npm test 2011-05-30 14:19:26 -07:00
Tj Holowaychuk
1bb798d963 Release 2.3.10 2011-05-27 09:20:03 -07:00
Tj Holowaychuk
91997e9c53 Added req.route, exposing the current route. Closes #11
this can be used with a dynamicHelper to expose the _last_
route that was matched, aka the end-point when rendering a template.

this is a `Route` instance, so it has .path, .regexp, etc.
2011-05-27 09:12:49 -07:00
Tj Holowaychuk
1393187040 Merge branch 'refactor/executable' 2011-05-26 10:31:29 -07:00
Tj Holowaychuk
6e69c880d9 Added package.json generation support to express(1) 2011-05-26 10:31:21 -07:00
Tj Holowaychuk
59dcd03972 removed suggestions 2011-05-26 10:18:56 -07:00
Tj Holowaychuk
11482546a2 Fixed call to app.param() function for optional params. Closes #682 2011-05-26 09:56:04 -07:00
Tj Holowaychuk
1ce43dd347 added failing test for #682 2011-05-26 09:48:07 -07:00
Tj Holowaychuk
d1bfe137d4 test to ensure catch of invalid uri 2011-05-25 15:50:32 -07:00
Tj Holowaychuk
9d7452cdc2 more tests 2011-05-25 10:56:56 -07:00
Tj Holowaychuk
d9cee90efc Release 2.3.9 2011-05-25 10:18:26 -07:00
Tj Holowaychuk
175aa08500 more tests 2011-05-25 10:16:11 -07:00
Tj Holowaychuk
c9ff6198d3 more tests 2011-05-25 10:15:21 -07:00
Tj Holowaychuk
f026218c82 misc view refactoring 2011-05-25 10:10:23 -07:00
Tj Holowaychuk
5bc86b9e29 more tests 2011-05-25 09:54:55 -07:00
Tj Holowaychuk
5830ac9936 more tests 2011-05-25 09:54:06 -07:00
Tj Holowaychuk
d7c6c9a9f9 Release 2.3.8 2011-05-24 21:53:08 -07:00
Tj Holowaychuk
9c87eed60e Fixed OPTIONS regression preventing custom routing for this method 2011-05-24 21:52:52 -07:00
Tj Holowaychuk
f15eb6d5ef added options test 2011-05-24 21:41:37 -07:00
Tj Holowaychuk
5b33788359 express-mongoose link 2011-05-24 08:45:44 -07:00
Tj Holowaychuk
11ec3ccd48 removed some old invalid docs
new stuff to come
2011-05-23 17:16:02 -07:00
Tj Holowaychuk
9d498ba3f1 misc 2011-05-23 16:59:16 -07:00
Tj Holowaychuk
15d4047180 link 2011-05-23 16:57:36 -07:00
Tj Holowaychuk
44eae73843 Release 2.3.7 2011-05-23 15:54:17 -07:00
Tj Holowaychuk
d5b1c70731 removed invalidParamReturnValue() 2011-05-23 15:48:58 -07:00
Tj Holowaychuk
e78dc18cfd Removed app.param() callback with retval support
this is now abstract and will be going into express-params
along with some other cases
2011-05-23 15:40:41 -07:00
Tj Holowaychuk
4d122923e9 docs 2011-05-23 15:33:40 -07:00
Tj Holowaychuk
b1a7310263 Added support for app.param(fn) to define param logic 2011-05-23 15:30:34 -07:00
Tj Holowaychuk
d6ef90d98d Moved param() retval logic to Router#param() 2011-05-23 15:06:59 -07:00
Tj Holowaychuk
85df59ac31 comma first 2011-05-23 14:56:35 -07:00
Tj Holowaychuk
b789a28581 refactored with nextRoute() 2011-05-23 14:52:43 -07:00
Tj Holowaychuk
4068e7f444 added route Collection tests 2011-05-23 14:13:31 -07:00
Tj Holowaychuk
80e9ffbf5d Refactored router. Closes #639 2011-05-23 13:48:31 -07:00
Tj Holowaychuk
610fc92ca3 arity < 3 considered return-style param 2011-05-23 09:52:11 -07:00
Tj Holowaychuk
0f5dc9bdb2 Added checking of app.param() fn retval
functions returning NaN, == null, or === false are considered
a failure and the next route is executed
2011-05-23 09:38:01 -07:00
TJ Holowaychuk
c24b2faec5 Merge pull request #671 from jpalardy/patch-1
Documentation typo :uri -> :url for logger()
2011-05-22 10:18:01 -07:00
Jonathan Palardy
c407f58dc2 :uri -> :url
Example won't work otherwise. I checked the code :-)
2011-05-21 23:17:57 -07:00
Tj Holowaychuk
380da0e202 Removed module.parent check from express(1) generated app. Closes #670 2011-05-21 14:17:24 -07:00
Tj Holowaychuk
9e5e7a1526 added more route tests 2011-05-20 15:46:36 -07:00
Tj Holowaychuk
9016b5aaae added more route tests 2011-05-20 15:46:05 -07:00
Tj Holowaychuk
45f168e873 Release 2.3.6 2011-05-20 09:42:01 -07:00
Tj Holowaychuk
799938683d Merge branch 'refactor/dev-deps' 2011-05-20 09:39:34 -07:00
Tj Holowaychuk
7128f2d11f fixed last examples 2011-05-20 09:39:29 -07:00
Tj Holowaychuk
0634bf0b0d fixed redis example 2011-05-20 09:38:52 -07:00
Tj Holowaychuk
f9e48c2972 fixed markdown example 2011-05-20 09:29:22 -07:00
Tj Holowaychuk
909960c0b3 refactoring examples more 2011-05-20 09:26:47 -07:00
Tj Holowaychuk
8a7876f4d1 cleaning up examples 2011-05-20 09:16:35 -07:00
Tj Holowaychuk
286c92b13b docs 2011-05-20 09:15:39 -07:00
Tj Holowaychuk
b9872a278f docs 2011-05-20 09:15:35 -07:00
Tj Holowaychuk
1b34fd7efa misc 2011-05-20 09:11:15 -07:00
Tj Holowaychuk
f05c351762 Fixed view caching, should not be enabled in development 2011-05-20 09:01:05 -07:00
Tj Holowaychuk
8323f19e96 fixing examples 2011-05-20 08:56:25 -07:00
Tj Holowaychuk
565eda9ee5 docs 2011-05-20 08:40:26 -07:00
Tj Holowaychuk
7aea7194d1 example docs 2011-05-20 08:39:43 -07:00
Tj Holowaychuk
2f68957c8c fixed tests 2011-05-20 08:37:23 -07:00
Tj Holowaychuk
4ca848e526 ignore node_modules 2011-05-20 08:35:20 -07:00
Tj Holowaychuk
31a8c7c19c test docs 2011-05-20 08:35:11 -07:00
Tj Holowaychuk
f1c435e050 removed support submods 2011-05-20 08:31:13 -07:00
Tj Holowaychuk
fac75a9bff connect 1.4.1 2011-05-20 08:29:02 -07:00
Tj Holowaychuk
4fe03ab223 dev deps 2011-05-20 08:28:02 -07:00
TJ Holowaychuk
c6122da59b Merge pull request #668 from joemccann/master
Simple Update to Markdown example
2011-05-20 08:07:21 -07:00
Tj Holowaychuk
131f658779 Release 2.3.5 2011-05-20 07:32:16 -07:00
Joe McCann
127f77964e Updated markdown example to latest version of node-markdown and modified the compile method. 2011-05-20 09:16:53 -05:00
Tj Holowaychuk
9f2bd30dc7 router.routes 2011-05-19 18:36:41 -07:00
Tj Holowaychuk
6e633b31b4 return bool from req.is() 2011-05-19 09:48:19 -07:00
Tj Holowaychuk
1c65643488 more tests 2011-05-18 17:41:15 -07:00
Tj Holowaychuk
388ad9067a tweak tests 2011-05-17 13:59:24 -07:00
Tj Holowaychuk
f470f0bdc5 export .view as alias for .View
reads better:

   express.view.lookup(...)
2011-05-16 16:27:17 -07:00
Tj Holowaychuk
72384b0523 misc refactor of res.partial() 2011-05-16 15:29:20 -07:00
Tj Holowaychuk
1b199b7d98 lookup docs 2011-05-16 15:26:12 -07:00
Tj Holowaychuk
09b384ea44 Merge branch 'refactor/views' 2011-05-16 15:20:26 -07:00
Tj Holowaychuk
56ae55f987 keep duplicates out of view resolution hint 2011-05-16 15:20:08 -07:00
Tj Holowaychuk
1c360a89ba added views.compile(view, cache, cid, options)
private for now
2011-05-16 15:17:06 -07:00
Tj Holowaychuk
8636dee13e docs 2011-05-16 14:28:11 -07:00
Tj Holowaychuk
70e6baf6fc misc refactoring 2011-05-16 09:32:53 -07:00
Tj Holowaychuk
3588c1eedc docs 2011-05-16 09:27:16 -07:00
Tj Holowaychuk
8d6f167a81 added better middleware docs and use-cases 2011-05-16 09:24:53 -07:00
Tj Holowaychuk
6106188347 docs 2011-05-15 18:01:47 -07:00
Tj Holowaychuk
eeb77541cd Updated jade submodule 2011-05-14 11:53:26 -07:00
Tj Holowaychuk
99b244b47c export View 2011-05-13 19:38:23 -07:00
Tj Holowaychuk
3043672448 added exports.lookup(view, options) to view.js
private for now
2011-05-13 19:37:11 -07:00
Tj Holowaychuk
0477a53c9f misc refactor 2011-05-13 15:47:48 -07:00
Tj Holowaychuk
d9aa7c3bc9 Release 2.3.4 2011-05-08 10:53:57 -07:00
Tj Holowaychuk
986fac583b Merge branch 'master' of github.com:visionmedia/express 2011-05-08 10:52:59 -07:00
Tj Holowaychuk
c6d76086e2 Fixed res.sendfile() bug preventing the transfer of files with spaces
params are decoded so we need to encode before passing to send() which then
in turn decodes it again, however nodes url module chokes on the spaces.
2011-05-08 10:52:16 -07:00
Tj Holowaychuk
e2771364eb Updated connect submodule 2011-05-08 10:45:42 -07:00
Tj Holowaychuk
0d5a63798b added failing test with spaces in filename 2011-05-08 10:40:37 -07:00
TJ Holowaychuk
7d15e2bf52 Merge pull request #653 from darrentorpey/patch-1.
Fixed a typo: "A route is simple a string" => "A route is simply a string
2011-05-04 09:35:49 -07:00
Darren Torpey
31fef407b6 Fixed a typo: "A route is simple a string" => "A route is simply a string" 2011-05-04 04:14:40 -07:00
Tj Holowaychuk
6bef3ef891 misc 2011-05-03 16:48:17 -07:00
Tj Holowaychuk
b806846049 misc 2011-05-03 16:44:17 -07:00
Tj Holowaychuk
bc16020976 added stupid say example 2011-05-03 16:40:20 -07:00
Tj Holowaychuk
8afb905a43 Release 2.3.3 2011-05-03 11:31:16 -07:00
Tj Holowaychuk
53667728a8 Fixed route-specific middleware when using the same callback function several times 2011-05-03 11:28:33 -07:00
Tj Holowaychuk
5f0a854e29 added test for route specific middleware regression 2011-05-03 11:25:54 -07:00
Tj Holowaychuk
e9ef3dd9cd ws 2011-05-03 09:41:59 -07:00
Tj Holowaychuk
f702884704 split methods supported by rfc [slaskis] 2011-05-03 09:24:51 -07:00
Tj Holowaychuk
0cb866845d npm 1.x docs 2011-05-02 12:48:45 -07:00
Tj Holowaychuk
26483029db docs for next("route"). Closes #650 2011-05-01 11:06:37 -07:00
Tj Holowaychuk
d2adcbdf67 Added "case sensitive routes" option. 2011-04-29 16:41:20 -07:00
Tj Holowaychuk
d2f963db2a fixed tests 2011-04-29 16:34:22 -07:00
TJ Holowaychuk
fc2bc1362f Merged pull request #645 from 8bitDesigner/patch-1.
Incorrect reference to template in a comment
2011-04-27 18:56:00 -07:00
8bitDesigner
6ae45d0fd3 The comment here refers to using "jade" for layouts, but you're using "ejs" instead. 2011-04-27 16:11:39 -07:00
Tj Holowaychuk
cc185a8c0e Release 2.3.2 2011-04-27 09:12:54 -07:00
Tj Holowaychuk
ae1078944c Fixed view hints
populate attempts on new View
2011-04-27 09:07:56 -07:00
Tj Holowaychuk
385a05dd10 bump 2011-04-26 15:26:24 -07:00
Tj Holowaychuk
2572a78648 Release 2.3.1 2011-04-26 15:26:04 -07:00
Tj Holowaychuk
470774cfba Fixed template caching collision issue. Closes #644
the parent view is resolved first so we always have the absolute path
available, so this should prevent collisions.
2011-04-26 15:24:31 -07:00
Tj Holowaychuk
351f6abe4c Merge branch 'refactor/router' 2011-04-26 14:36:51 -07:00
Tj Holowaychuk
53a16e1795 Added app.match() as app.match.all() 2011-04-26 13:59:59 -07:00
Tj Holowaychuk
ff77c8b205 Added app.lookup() as app.lookup.all() 2011-04-26 13:59:37 -07:00
Tj Holowaychuk
b33f38b109 Added app.remove() for app.remove.all() 2011-04-26 13:58:43 -07:00
Tj Holowaychuk
b9596d7ce8 Added app.remove.VERB() 2011-04-26 13:57:05 -07:00
Tj Holowaychuk
251175c025 test for previous commit 2011-04-26 13:30:47 -07:00
Tj Holowaychuk
fda1bc4630 moved fn.params to route.params 2011-04-26 13:30:21 -07:00
Tj Holowaychuk
83c2c176a9 misc 2011-04-26 13:28:20 -07:00
Tj Holowaychuk
9be5992f22 misc refactoring 2011-04-26 13:26:49 -07:00
Tj Holowaychuk
d8d23c0bf8 misc 2011-04-26 13:21:19 -07:00
Tj Holowaychuk
b2689fc40e docs 2011-04-26 13:16:19 -07:00
Tj Holowaychuk
a4cfde350f moved more tests 2011-04-26 13:14:21 -07:00
Tj Holowaychuk
7374027457 added router.test.js 2011-04-26 13:13:07 -07:00
Tj Holowaychuk
63328c2177 added .index to match() retvals 2011-04-26 13:01:53 -07:00
Tj Holowaychuk
c4e2ce23e5 more Route tests 2011-04-26 12:59:25 -07:00
Tj Holowaychuk
dacad53b2e Added instancoef Route test 2011-04-26 12:57:14 -07:00
Tj Holowaychuk
4ffd5280a7 expose Route 2011-04-26 12:55:31 -07:00
Tj Holowaychuk
74310fb464 misc refactoring 2011-04-26 12:53:57 -07:00
Tj Holowaychuk
8b2268cf38 Started Route implementation 2011-04-26 12:41:05 -07:00
Tj Holowaychuk
fb655f4981 added lib/router/methods.js 2011-04-26 11:49:51 -07:00
Tj Holowaychuk
7208c33d72 refactored view.js 2011-04-26 11:40:44 -07:00
Tj Holowaychuk
4efb25d048 refactored https.js 2011-04-26 11:39:09 -07:00
Tj Holowaychuk
a3678cd7f6 refactored http.js 2011-04-26 11:34:41 -07:00
Tj Holowaychuk
393d38f1ab stubbed Route 2011-04-26 11:31:31 -07:00
Tj Holowaychuk
805b9ac3a9 docs for "view cache" setting 2011-04-25 12:06:20 -07:00
Tj Holowaychuk
379b9812be refactored options() helper 2011-04-25 10:26:08 -07:00
Tj Holowaychuk
a9992b5647 docs 2011-04-25 10:19:13 -07:00
Tj Holowaychuk
b6c0a9b1b5 moved router to router/index 2011-04-25 10:17:13 -07:00
Tj Holowaychuk
1d2dd2a375 Merge branch 'feature/router' 2011-04-25 10:13:46 -07:00
Tj Holowaychuk
63db694aa2 utilizing local router 2011-04-25 10:13:30 -07:00
Tj Holowaychuk
b6aca36ad9 htmlEscape -> escape 2011-04-25 10:11:38 -07:00
Tj Holowaychuk
8420ae93fd removed old path utils 2011-04-25 10:10:43 -07:00
Tj Holowaychuk
6722716fa7 Moved router over from connect 2011-04-25 10:08:54 -07:00
Tj Holowaychuk
658e064220 Release 2.3.0 2011-04-25 09:49:54 -07:00
Tj Holowaychuk
66b472e567 connect >= 1.4.0 2011-04-25 09:32:57 -07:00
Tj Holowaychuk
3d242a607e Fixed caching of views when using several apps. Closes #637
simple fix :)
2011-04-25 09:25:23 -07:00
Tj Holowaychuk
bc68e5e7a3 misc 2011-04-25 09:20:31 -07:00
Tj Holowaychuk
aa6858189c misc refactor 2011-04-23 18:54:49 -07:00
Tj Holowaychuk
06fda62c9e Merge branch 'refactor/route-middleware' 2011-04-22 16:49:04 -07:00
Tj Holowaychuk
5688ea650d Fixed gotcha invoking app.param() callbacks once per route middleware. Closes #638 2011-04-22 16:48:54 -07:00
Tj Holowaychuk
f5c4e9d612 Updated connect submodule 2011-04-22 16:34:42 -07:00
Tj Holowaychuk
b9eda2a59d Updated connect submodule 2011-04-22 16:11:13 -07:00
Tj Holowaychuk
8c168b0971 connect >= 1.3.1 < 2.0.0 2011-04-22 16:11:07 -07:00
Tj Holowaychuk
9c20a50ee2 Added failing test for gotcha 2011-04-22 14:44:08 -07:00
Tj Holowaychuk
eac666574e viewHelpers -> _locals 2011-04-21 08:26:30 -07:00
Tj Holowaychuk
e4c840f6b8 Added res.helpers() as alias of res.locals()
to match app.locals() / app.helpers()
2011-04-20 15:26:22 -07:00
Daniel Shaw
3afbcd0acf JSON and JSONP default to UTF-8 in the same way as HTML. Closes #632.
Signed-off-by: Tj Holowaychuk <tj@vision-media.ca>
2011-04-20 09:00:02 -07:00
Daniel Shaw
8f054dbcaf JSON and JSONP default to UTF-8 in the same way as HTML. Introduces app.set('charset') to set charset default at the application level. Closes #632.
Signed-off-by: Tj Holowaychuk <tj@vision-media.ca>
2011-04-20 09:00:02 -07:00
Tj Holowaychuk
ccc39e5aa2 Fixed partial lookup precedence. Closes #631 2011-04-19 10:23:16 -07:00
Tj Holowaychuk
53d4da2a9c Added failing partial precedence test 2011-04-19 10:19:45 -07:00
Tj Holowaychuk
d9e7153fc9 Renamed "cache views" to "view cache". Closes #628 2011-04-17 16:42:03 -07:00
Tj Holowaychuk
dc02b0d5ae Added options support to res.clearCookie() 2011-04-17 16:37:16 -07:00
Aaron Heckmann
e0bc5711b8 auto set Content-Type in res.attachement
Signed-off-by: Tj Holowaychuk <tj@vision-media.ca>
2011-04-14 13:48:22 -07:00
Tj Holowaychuk
957cf45fa1 Release 2.2.2 2011-04-12 02:44:47 -07:00
Tj Holowaychuk
f4487343df Fixed filename option passing to template engine 2011-04-12 02:43:03 -07:00
Tj Holowaychuk
ca1bdb31e3 Updated jade submodule 2011-04-12 02:41:30 -07:00
Tj Holowaychuk
236a412459 docs 2011-04-11 09:46:28 -07:00
Tj Holowaychuk
759a57bdb6 Added second callback support for res.download() connection errors
since you can no longer respond, it will be helpful to have separate callbacks
2011-04-11 09:44:19 -07:00
Tj Holowaychuk
1abb674a07 temp fix for nodes res.removeHeader() after sent "bug" 2011-04-11 09:14:11 -07:00
Tj Holowaychuk
961146a287 link to express-expose 2011-04-08 17:51:41 -07:00
Tj Holowaychuk
573f940985 fixed example hasMessages
sessions are not always available
2011-04-08 12:44:03 -07:00
Tj Holowaychuk
882916bb2e Updated jade submodule 2011-04-08 12:36:41 -07:00
Tj Holowaychuk
47d1c62732 Updated connect submodule 2011-04-08 12:36:35 -07:00
Tj Holowaychuk
d39293c025 refactor 2011-04-08 12:36:26 -07:00
Tj Holowaychuk
2942dafdfd >= connect 1.2.3 2011-04-05 11:25:16 -07:00
Tj Holowaychuk
4e1aefa5b5 Release 2.2.1 2011-04-04 12:23:37 -07:00
Tj Holowaychuk
89383ecc57 misc refactoring 2011-04-03 14:27:40 -07:00
Tj Holowaychuk
08046f7692 Added better partial() object collection support
only respecting .length is fine in some cases, but
if the object has a length and has holes, it will likely
produce an unexpected result, or an undefined local in the
render call, which may some times be ideal, but most likely not.

this change allows arbitrary objects to be passed to "collection: ",
however unfortunately there is no way to arbitrarily assume the object
is a collection without passing it as the option
2011-04-03 14:27:05 -07:00
Tj Holowaychuk
885fb1fa92 docs 2011-04-01 17:55:26 -07:00
Tj Holowaychuk
6a58c71528 Merge branch 'feature/view-layout-control' 2011-04-01 17:47:11 -07:00
Tj Holowaychuk
371d66ba2a Added layout(path) helper to change the layout within a view. Closes #610 2011-04-01 17:47:03 -07:00
Tj Holowaychuk
25bddf3fb5 added layout control example 2011-04-01 17:39:18 -07:00
Tj Holowaychuk
f6e9fb13f8 Removed "request" and "response" locals
sorry, changed my mind. easy enough to expose these if you want to,
but they are to large by default
2011-04-01 17:25:05 -07:00
Tj Holowaychuk
f0df8434e7 markdown escaping 2011-03-31 08:24:43 -07:00
Tj Holowaychuk
e4d3f239e5 Updated connect submodule 2011-03-30 22:01:16 -07:00
Tj Holowaychuk
bcc22dfa6f Updated connect submodule 2011-03-30 21:59:17 -07:00
Tj Holowaychuk
f614709a01 errorHandler title 2011-03-30 21:59:15 -07:00
Tj Holowaychuk
11250d22c9 misc refactoring 2011-03-30 21:44:21 -07:00
Tj Holowaychuk
4b4de29725 Performance improved with better view caching
the entire View object is now cached in-memory, along with the lookup
logic as well. This increases rendering (with jade at least) by about 260 rps
2011-03-30 21:40:05 -07:00
Tj Holowaychuk
99b49d2718 updated docs 2011-03-30 12:11:22 -07:00
Tj Holowaychuk
6230ec55be more docs 2011-03-30 12:02:14 -07:00
Tj Holowaychuk
0733d3c585 connect 1.2.0 2011-03-30 11:58:26 -07:00
Tj Holowaychuk
6f8370ff0e Updated connect submodule 2011-03-30 11:58:09 -07:00
Tj Holowaychuk
bc244ed07e docs for app.match.VERB() 2011-03-30 11:56:14 -07:00
Tj Holowaychuk
41266aa8e4 docs for app.lookup.VERB() 2011-03-30 11:49:21 -07:00
Tj Holowaychuk
45faee3e5b Release 2.2.0 2011-03-30 11:40:47 -07:00
Tj Holowaychuk
74ff735e10 Updated haml submodule 2011-03-30 11:00:47 -07:00
Tj Holowaychuk
97879f2b16 Updated formidable submodule 2011-03-30 11:00:43 -07:00
Tj Holowaychuk
1a338251ad Updated connect-form submodule 2011-03-30 11:00:34 -07:00
Tj Holowaychuk
354dc768c1 Updated jade submodule 2011-03-30 11:00:25 -07:00
Tj Holowaychuk
8a0796cd94 Updated ejs submodule 2011-03-30 11:00:21 -07:00
Tj Holowaychuk
cbc3b26584 changed express(1) --help 2011-03-30 10:58:01 -07:00
Tj Holowaychuk
d628583db8 removed colors from express(1) 2011-03-30 10:56:11 -07:00
Tj Holowaychuk
058777be1e connect >= 1.1.6 2011-03-29 18:11:00 -07:00
Tj Holowaychuk
260d03a0c4 Merge branch 'feature/route-lookup' 2011-03-29 18:04:49 -07:00
Tj Holowaychuk
6dcf6f41cc Added app.VERB() -> [Function...], app.lookup.VERB(), and app.match.VERB(). Closes #606 2011-03-29 18:04:43 -07:00
Tj Holowaychuk
799f790886 Updated connect submodule 2011-03-29 17:40:14 -07:00
Tj Holowaychuk
cb3c4b0ea9 Updated connect submodule 2011-03-29 17:38:39 -07:00
Tj Holowaychuk
798d255ba6 Release 2.1.1 2011-03-29 10:40:26 -07:00
Tj Holowaychuk
28ba9e8ac5 Fixed res.partial(); next(err) when no callback is given [reported by aheckmann] 2011-03-29 09:56:58 -07:00
Tj Holowaychuk
7888cb0506 docs 2011-03-29 09:51:38 -07:00
Tj Holowaychuk
5e284a20cc Updated connect submodule 2011-03-29 09:49:45 -07:00
Tj Holowaychuk
770357e727 Updated expresso submodule 2011-03-29 09:49:18 -07:00
Aaron Heckmann
673ba22555 res.send(undefined) returns a 204
closes #600

Signed-off-by: Tj Holowaychuk <tj@vision-media.ca>
2011-03-29 08:52:36 -07:00
Aaron Heckmann
fb38d9cfb7 add test for res.send(undefined)
Signed-off-by: Tj Holowaychuk <tj@vision-media.ca>
2011-03-29 08:52:34 -07:00
Aaron Heckmann
dda89a57ec ignore .swo .swp
Signed-off-by: Tj Holowaychuk <tj@vision-media.ca>
2011-03-29 08:52:34 -07:00
Tj Holowaychuk
62df63d3a0 doc typo 2011-03-29 08:39:35 -07:00
Tj Holowaychuk
e71696cf34 expose err.view when failing to locate a view
allows for:

   err.view.path

etc
2011-03-28 14:44:12 -07:00
Tj Holowaychuk
b5d8d58670 repo 2011-03-27 14:23:43 -07:00
Tj Holowaychuk
14e6a667f5 Release 2.1.0 2011-03-24 13:47:38 -07:00
Tj Holowaychuk
0c324783ae Merge branch 'feature/root-partial-lookup' 2011-03-24 13:34:02 -07:00
Tj Holowaychuk
5d6ce251ca Added <root>/_<name> partial lookup support 2011-03-24 13:33:52 -07:00
Tj Holowaychuk
92c04cee1d Added; partial lookup relative to view root. Closes #447
for example when nested deep, if you have a
partial located at ./views/messages.jade

partial("messages");

will still work
2011-03-24 13:26:32 -07:00
Tj Holowaychuk
7fdf587a7b added test for root partial lookup 2011-03-24 13:21:23 -07:00
Tj Holowaychuk
1e46218b09 doc typo 2011-03-24 11:46:40 -07:00
Tj Holowaychuk
c56fcd8fb9 better --help output 2011-03-22 13:00:36 -07:00
Tj Holowaychuk
319fbf7f64 Added "request", "response", and "app" locals 2011-03-22 12:16:58 -07:00
Tj Holowaychuk
bf06d9077c docs for "filename" local 2011-03-22 12:14:08 -07:00
Tj Holowaychuk
9d2bd29ee1 Added 'settings' local variable, containing the app's settings 2011-03-22 12:06:19 -07:00
Tj Holowaychuk
d11fa1f74e added .settings test 2011-03-22 12:02:57 -07:00
Tj Holowaychuk
c824da0dab test indentation 2011-03-22 11:59:29 -07:00
Tj Holowaychuk
9362c83a33 removed dead test 2011-03-22 11:59:05 -07:00
Tj Holowaychuk
0c38098f02 tweak req.flash() failure message 2011-03-21 16:13:40 -07:00
Pau Ramon
be7068f569 Better error output when using flash without session middleware. 2011-03-21 16:12:55 -07:00
Tj Holowaychuk
b122bf22e3 link typo 2011-03-21 12:06:36 -07:00
Tj Holowaychuk
b7232f38f3 Added res.send(bool) support
application/json
2011-03-21 10:34:04 -07:00
Tj Holowaychuk
c1b72ac1b7 Fixed stylus example for latest version 2011-03-21 08:45:43 -07:00
Roman Shtylman
b9e0d15878 check that this.params is valid before calling hasOwnProperty 2011-03-21 08:13:05 -07:00
Tj Holowaychuk
cf26cf7afc wrap try/catch around render() 2011-03-18 11:44:48 -07:00
Tj Holowaychuk
a75e60ae47 fixed docs due to markdown-js not supporting html 2011-03-18 09:18:29 -07:00
Tj Holowaychuk
187dc5dd03 connect 1.1.1 2011-03-18 08:49:59 -07:00
Tj Holowaychuk
9c9e2afade refactored res.redirect() 2011-03-18 08:49:46 -07:00
Tj Holowaychuk
fae1ba98c1 doc typo 2011-03-17 19:05:59 -07:00
Tj Holowaychuk
c3e632620a doc typo 2011-03-17 19:05:28 -07:00
Tj Holowaychuk
dd7158ac46 regenerated docs 2011-03-17 18:56:44 -07:00
Tj Holowaychuk
eefe51c7a7 removed manpages from make 2011-03-17 18:55:13 -07:00
Tj Holowaychuk
bf596dc023 Release 2.0.0 2011-03-17 18:06:30 -07:00
Tj Holowaychuk
220d88d654 Fixed up index view path alternative
previously was doing ../index, which was not intended
now doing ../VIEW/index
2011-03-17 15:36:44 -07:00
Tj Holowaychuk
a254e64bdb Changed; res.locals() without object returns the locals 2011-03-17 14:50:35 -07:00
Tj Holowaychuk
1555b92fb8 Release 2.0.0rc3 2011-03-17 13:01:59 -07:00
Tj Holowaychuk
d5b7a40b39 Fixed partials example 2011-03-17 13:00:43 -07:00
Tj Holowaychuk
bd1ab7ab96 pass the function 2011-03-17 12:48:06 -07:00
Tj Holowaychuk
2ff991bfcf refactored res.render() 2011-03-17 12:45:11 -07:00
Tj Holowaychuk
0b1378a539 Added res.locals(obj) 2011-03-17 12:13:59 -07:00
Tj Holowaychuk
723c908bd7 Added res.partial() callback support 2011-03-17 12:10:32 -07:00
Tj Holowaychuk
4874404701 typo 2011-03-17 11:33:35 -07:00
Tj Holowaychuk
4c1374840a Release 2.0.0rc2 2011-03-17 11:01:20 -07:00
Tj Holowaychuk
5da01633fd Fixed SlowBuffer support. Closes #584 2011-03-17 10:37:34 -07:00
Tj Holowaychuk
cdbd8af527 migration docs for partials 2011-03-17 09:31:32 -07:00
Tj Holowaychuk
a6fdc1bfd2 Fixed .filename view engine option [reported by drudge] 2011-03-16 16:58:02 -07:00
Tj Holowaychuk
20b8facb05 docs for partial changes 2011-03-16 15:53:27 -07:00
Tj Holowaychuk
909914f7af Changed; partial() "locals" are now optional
this means that:

   partial("user", { name: "tj" })

with the intent of receiving "user" instead of "name" in this
case is invalid, "name" here is a local, however passing a non-plain
object such as a User object is fine:

    partial("user", new User("tj"));
2011-03-16 15:37:05 -07:00
Tj Holowaychuk
3f31ebc676 fixed express-contrib example reference 2011-03-15 15:23:28 -07:00
Tj Holowaychuk
f3c068a90c Merge branch 'integration' 2011-03-15 10:52:58 -07:00
Tj Holowaychuk
90d7e193d1 Refactored Server#use()
eventually we should just emit some events from connect
2011-03-15 10:52:53 -07:00
Tj Holowaychuk
c9f5bb6f17 added .app test for the mounted server as well 2011-03-15 10:39:59 -07:00
Ben Weaver
9865a4c4f2 Clean up patch to Server#use(), add test case for restoring res#app property. 2011-03-15 10:37:18 -07:00
Ben Weaver
f12baf32d4 Restore original res.app when out() is called. 2011-03-15 10:37:18 -07:00
Tj Holowaychuk
80f4d08e8b Release 2.0.0rc 2011-03-14 15:01:37 -07:00
Tj Holowaychuk
07c9cae923 Fixed; expose HTTPSServer constructor 2011-03-14 14:36:22 -07:00
Tj Holowaychuk
d867cc9271 Fixed express(1) default test charset. Cloeses #579 [reported by secoif] 2011-03-13 10:15:53 -07:00
Tj Holowaychuk
3a1fe1e295 Fixed; default charset to utf-8 instead of utf8 for lame IE [reported by NickP] 2011-03-11 16:34:41 -08:00
Tj Holowaychuk
3cacf050df Docs for staticProvider() changes 2011-03-11 14:11:45 -08:00
Tj Holowaychuk
1536d73d1b Release 2.0.0beta3 2011-03-09 15:45:55 -08:00
Tj Holowaychuk
55143a9d44 Updated connect submodule 2011-03-09 15:39:10 -08:00
Tj Holowaychuk
c92e193916 Fixed res.redirect(). RFC states absolute 2011-03-09 15:18:22 -08:00
Tj Holowaychuk
d12452fc49 docs for charset 2011-03-09 10:59:47 -08:00
Tj Holowaychuk
3d8400a40c docs for res.contentType() literal 2011-03-09 10:54:35 -08:00
Tj Holowaychuk
1fe0aea0b0 Added test for res.contentType() literal 2011-03-09 10:53:50 -08:00
Tj Holowaychuk
5df2544883 fixed a test 2011-03-09 10:46:59 -08:00
Tj Holowaychuk
acbf224277 default res.send() string charset to utf8 2011-03-09 10:42:14 -08:00
Tj Holowaychuk
d0d17a0d35 charset tests using ISO-8859-1 2011-03-09 10:33:28 -08:00
Tj Holowaychuk
f7b53d33bc more tests 2011-03-09 10:33:06 -08:00
Tj Holowaychuk
92be06874b more tests 2011-03-09 10:31:45 -08:00
Tj Holowaychuk
f327455d9d Added charset option for render() 2011-03-09 10:31:10 -08:00
Tj Holowaychuk
54415bf2af moved a test 2011-03-09 10:29:03 -08:00
Tj Holowaychuk
bac62dfcd9 added charset test with res.render() 2011-03-09 10:26:37 -08:00
Tj Holowaychuk
820b43c1f3 Added .charset + res.send() test 2011-03-09 10:23:05 -08:00
Tj Holowaychuk
a5b69290d5 fixed a test 2011-03-09 10:20:44 -08:00
Tj Holowaychuk
5c7a9c86f6 Updated connect submodule 2011-03-09 10:20:03 -08:00
Tj Holowaychuk
7f83f916f6 Updated jade submodule 2011-03-09 09:46:47 -08:00
Masahiro Hayashi
c15a949cc3 Updated express command
- Fixed a genereated test's bug
- Added a forgotten semicolon
2011-03-08 13:42:06 -08:00
Tj Holowaychuk
ce47f96570 dont change NODE_ENV in tests 2011-03-08 13:39:30 -08:00
Tj Holowaychuk
57b035cd94 hinting at fully resolved paths 2011-03-08 12:58:16 -08:00
Tj Holowaychuk
f1f126171c Added view resolution hints when in development 2011-03-08 12:51:40 -08:00
Tj Holowaychuk
71e1bcd855 fixed a test 2011-03-08 12:02:35 -08:00
Tj Holowaychuk
b5579b6307 Added layout lookup support relative to the page view
for example if you render ./views/forum/thread and
./views/forum/thread/layout.jade exists, it will be used,
falling back on ./views/layout.jade.
2011-03-08 12:01:45 -08:00
Tj Holowaychuk
110b0fe14a misc refactor 2011-03-08 11:47:03 -08:00
Tj Holowaychuk
d7488bbb62 Removed Partial constructor (not used) 2011-03-08 11:42:03 -08:00
Tj Holowaychuk
2007407e7b docs 2011-03-08 09:56:24 -08:00
Tj Holowaychuk
d152e7e780 Added res.render() status support back
useful for error templates that display the status _and_
set the status code
2011-03-08 09:56:05 -08:00
Tj Holowaychuk
d4f4b6682d Release 2.0.0beta2 2011-03-07 09:40:39 -08:00
Tj Holowaychuk
7f4a12f4cd Added regular css file to stylus example 2011-03-07 09:34:41 -08:00
Tj Holowaychuk
07d06adf86 Added res.render() .locals support back to aid in migration process 2011-03-07 09:15:36 -08:00
Tj Holowaychuk
47dc188d57 Updated jade submodule 2011-03-04 18:33:29 -08:00
Tj Holowaychuk
85d22541d2 Fixed flash example 2011-03-04 11:18:19 -08:00
Tj Holowaychuk
90ec1031f9 typo in flash example 2011-03-04 11:03:47 -08:00
Tj Holowaychuk
9bc9ad13a4 < connect 2.0.0 2011-03-04 08:52:15 -08:00
Tj Holowaychuk
1782c7d778 regenerated docs 2011-03-04 08:46:55 -08:00
Tj Holowaychuk
e85752c527 Add haml back in docs 2011-03-04 08:44:35 -08:00
Tj Holowaychuk
dfdbbb514f haml working fine 2011-03-04 08:43:52 -08:00
Tj Holowaychuk
976f5ca93e Updated haml submodule 2011-03-04 08:43:07 -08:00
Tj Holowaychuk
2086f8d34c beta in express --version 2011-03-03 17:16:25 -08:00
Tj Holowaychuk
6873a68216 changelog typo 2011-03-03 16:34:05 -08:00
Tj Holowaychuk
9eb2c61760 docs 2011-03-03 16:15:17 -08:00
Tj Holowaychuk
543e791206 docs 2011-03-03 16:13:20 -08:00
Tj Holowaychuk
b6e8b3fa84 added express-namespace link 2011-03-03 16:10:38 -08:00
Tj Holowaychuk
6f8e406b7b added express-messages link 2011-03-03 16:08:52 -08:00
Tj Holowaychuk
93bc54b65c added express-configure link 2011-03-03 16:07:22 -08:00
Tj Holowaychuk
3bf0ac4a36 added express-resource link 2011-03-03 16:05:49 -08:00
Tj Holowaychuk
bc01bfff21 connect docs 2011-03-03 16:02:27 -08:00
Tj Holowaychuk
0d4eaf03fc Added make site 2011-03-03 15:59:47 -08:00
Tj Holowaychuk
2bb0412473 docs 2011-03-03 15:49:34 -08:00
Tj Holowaychuk
07ce5d3158 docs for res.render() and res.partial() 2011-03-03 15:49:30 -08:00
Tj Holowaychuk
131970b3e5 docs 2011-03-03 15:39:44 -08:00
Tj Holowaychuk
00e1dbfbd9 docs for res.cookie() 2011-03-03 15:30:43 -08:00
Tj Holowaychuk
4c274c524d Added res.cookie() maxAge support 2011-03-03 15:27:03 -08:00
Tj Holowaychuk
5581ca2751 docs 2011-03-03 15:07:35 -08:00
Tj Holowaychuk
5cd9a9540f docs 2011-03-03 14:40:47 -08:00
Tj Holowaychuk
1db2efa75a docs 2011-03-03 14:39:10 -08:00
Tj Holowaychuk
c1a82bf3ea docs 2011-03-03 14:18:42 -08:00
Tj Holowaychuk
7705042cac docs 2011-03-03 13:31:09 -08:00
Tj Holowaychuk
b9e311e893 version docs 2011-03-03 13:26:31 -08:00
Tj Holowaychuk
460998497d docs 2011-03-03 13:25:31 -08:00
Tj Holowaychuk
022c5e1411 note on locals 2011-03-03 13:10:50 -08:00
Tj Holowaychuk
60daf0d6c7 Ignore .DS_Store 2011-03-03 12:53:34 -08:00
Tj Holowaychuk
0b6a941624 more docs 2011-03-03 12:47:01 -08:00
Tj Holowaychuk
1fc520b45a Fixed partial() issue where the parent locals clobber those given directly 2011-03-03 12:44:37 -08:00
Tj Holowaychuk
cbbee38be8 Added more view examples 2011-03-03 11:54:16 -08:00
Tj Holowaychuk
2dae6d8285 Fixed mounting of non-express servers 2011-03-03 11:33:53 -08:00
Tj Holowaychuk
65c8a956f1 do not try ../index when rendering a layout 2011-03-03 11:23:16 -08:00
Tj Holowaychuk
2b907e9a8c fixing tests 2011-03-03 11:21:57 -08:00
Tj Holowaychuk
25e520c243 misc 2011-03-03 11:11:08 -08:00
Tj Holowaychuk
2124c8465a removed scope tests 2011-03-03 11:05:16 -08:00
Tj Holowaychuk
a49e1f4f3d Changed default view scope to a plain object
easier to debug, and kinda useless to use "this" anyway
2011-03-03 10:59:00 -08:00
Tj Holowaychuk
32be4a7812 Added View#upIndexPath 2011-03-03 10:54:54 -08:00
Tj Holowaychuk
92967d3457 Added failing test for partial("foo") loading the index 2011-03-03 10:28:51 -08:00
Tj Holowaychuk
d70fee7432 Added partial() index test 2011-03-03 10:24:50 -08:00
Tj Holowaychuk
97b8e75932 Added index view test 2011-03-03 10:18:19 -08:00
Tj Holowaychuk
8a62f8cef0 view lookup docs 2011-03-03 10:10:18 -08:00
Tj Holowaychuk
10f4f523fa populate changelog for 2.0.0beta 2011-03-03 10:00:56 -08:00
Tj Holowaychuk
1e392d2628 populate changelog from 1.x 2011-03-03 09:36:38 -08:00
Tj Holowaychuk
eb6ff62113 Fixed req.param() bug returning Array.prototype methods. Closes #552 2011-03-03 09:20:28 -08:00
Tj Holowaychuk
64da2621da Merge branch 'docs' 2011-03-02 18:37:43 -08:00
Tj Holowaychuk
61aec6e961 Added markdown template engine example 2011-03-02 18:37:36 -08:00
Tj Holowaychuk
42f3ad436d docs 2011-03-02 18:37:29 -08:00
Tj Holowaychuk
2f7b78c03a ejs example using app.register() 2011-03-02 18:27:12 -08:00
Tj Holowaychuk
402d37d613 docs 2011-03-02 18:25:21 -08:00
Tj Holowaychuk
96327c979c docs 2011-03-02 18:10:51 -08:00
Tj Holowaychuk
9d1b3f59d5 docs 2011-03-02 17:20:39 -08:00
Tj Holowaychuk
14bd50efe4 docs 2011-03-02 16:59:48 -08:00
Tj Holowaychuk
631c1f95e7 node ">= 0.4.1 < 0.5.0" 2011-03-02 16:36:05 -08:00
Tj Holowaychuk
50006f7e43 docs 2011-03-02 16:22:53 -08:00
Tj Holowaychuk
4c9503158b connect >= 1.0.1 2011-03-02 16:16:03 -08:00
Tj Holowaychuk
6c8e461db5 beta 2011-03-02 16:15:37 -08:00
Tj Holowaychuk
aaa8415169 Removed partial() / render() status and header options 2011-03-02 16:11:02 -08:00
Tj Holowaychuk
51e964498c docs 2011-03-02 16:08:39 -08:00
Tj Holowaychuk
0cddc70ff5 node 0.4.x only 2011-03-02 15:57:33 -08:00
Tj Holowaychuk
99dcf7508f Added res.redirect() mount test 2011-03-02 15:52:41 -08:00
Tj Holowaychuk
7822d1f148 docs 2011-03-02 15:45:24 -08:00
Tj Holowaychuk
a572a7126c Merge branch 'mounting' 2011-03-02 15:42:34 -08:00
Tj Holowaychuk
a1609faba0 stylesheet respecting base 2011-03-02 15:42:29 -08:00
Tj Holowaychuk
9bf823d893 Added mount support for res.redirect(), now respects the mount-point 2011-03-02 15:37:12 -08:00
Tj Holowaychuk
ca184e7725 Updated connect submodule 2011-03-02 15:26:21 -08:00
Tj Holowaychuk
5054507487 added "base" local to blog example for mounting 2011-03-02 15:17:19 -08:00
Tj Holowaychuk
ab93be0178 refactored blog example 2011-03-02 15:06:23 -08:00
Tj Holowaychuk
8b0993bb10 misc 2011-03-02 15:02:57 -08:00
Tj Holowaychuk
0a034bb3ea started mounting example 2011-03-02 15:01:46 -08:00
Tj Holowaychuk
4ce815a3ed Removed annotated docs 2011-03-02 14:49:39 -08:00
Tj Holowaychuk
4da860eae1 removed api.html 2011-03-02 14:49:26 -08:00
Tj Holowaychuk
27e4bdb814 more res.partial() examples 2011-03-02 14:39:24 -08:00
Tj Holowaychuk
dd9406cd52 Added res.partial(), using the same interface as partial() within a view. Closes #539 2011-03-02 14:27:07 -08:00
Tj Holowaychuk
509312773d partials example utilizing index 2011-03-02 13:56:47 -08:00
Tj Holowaychuk
42d2758c36 Added union() util, taking place of merge(clone()) combo 2011-03-02 13:41:36 -08:00
Tj Holowaychuk
ef1c858ffc more test refactoring 2011-03-02 13:31:11 -08:00
Tj Holowaychuk
7fd47c0ac6 more test refactoring 2011-03-02 13:21:54 -08:00
Tj Holowaychuk
a63b232ef1 more test refactoring 2011-03-02 13:20:27 -08:00
Tj Holowaychuk
acb502e5e3 refactoring tsts 2011-03-02 13:18:39 -08:00
Tj Holowaychuk
3661922bb0 refactored res.send() 2011-03-02 12:39:39 -08:00
Tj Holowaychuk
0704f149be misc 2011-03-02 12:28:24 -08:00
Tj Holowaychuk
334604de5d utilizing app.set() 2011-03-02 12:03:05 -08:00
Tj Holowaychuk
530328ac15 misc refactoring 2011-03-02 11:43:40 -08:00
Tj Holowaychuk
9914a1eb3f copyright 2011-03-02 11:37:19 -08:00
Tj Holowaychuk
5db5710d3f Merge branch 'bugs/local-precedence' 2011-03-02 11:31:21 -08:00
Tj Holowaychuk
9e9f55a8e3 fixed local precedence 2011-03-02 11:31:14 -08:00
Tj Holowaychuk
0800141a9d semi-colons 2011-03-02 11:13:39 -08:00
Tj Holowaychuk
dc6d469f0c added more local tests 2011-03-02 11:11:18 -08:00
Tj Holowaychuk
89299d77e4 bodyParser not bodyDecoder 2011-03-02 10:52:37 -08:00
Tj Holowaychuk
27d8bf6311 refactored express(1) stdin usage 2011-03-02 10:50:13 -08:00
Tj Holowaychuk
8c229a8560 fixed express(1) confirmation for 0.4.x 2011-03-02 10:47:14 -08:00
Tj Holowaychuk
29eed65a67 removed constants from express(1) 2011-03-02 10:43:55 -08:00
Tj Holowaychuk
f0e0073a09 more partial examples 2011-03-02 10:39:32 -08:00
Tj Holowaychuk
b70bde58be fixing more examples 2011-03-02 10:30:33 -08:00
Tj Holowaychuk
635fac776d renamed example to params 2011-03-02 10:26:43 -08:00
Tj Holowaychuk
7753d4e91d refactored partials example 2011-03-02 10:24:57 -08:00
Tj Holowaychuk
66a6214216 fixing more examples 2011-03-02 10:15:10 -08:00
Tj Holowaychuk
6cae1f09f1 docs 2011-03-02 10:09:07 -08:00
Tj Holowaychuk
c4432ee827 download example 2011-03-02 10:06:14 -08:00
Tj Holowaychuk
80a5bf2063 fixing examples 2011-03-02 10:02:42 -08:00
Tj Holowaychuk
5b3d5fc431 removed cache example 2011-03-02 09:57:11 -08:00
Tj Holowaychuk
cd38fb4177 refactored auth example 2011-03-02 09:56:09 -08:00
Tj Holowaychuk
9b1cc75b36 res.download() and res.sendfile() using connect now 2011-03-02 09:41:21 -08:00
Tj Holowaychuk
db8b2883e2 Updated connect submodule 2011-03-01 15:53:56 -08:00
Tj Holowaychuk
59a74ecce4 refactoring to use connects static server 2011-03-01 15:42:42 -08:00
Tj Holowaychuk
9099c61df9 Merge branch 'progressive-headers' 2011-03-01 14:41:01 -08:00
Tj Holowaychuk
50521281ce utilizing nodes progressive response header api 2011-03-01 14:40:46 -08:00
Tj Holowaychuk
0cc6abf741 refactored req.is() 2011-03-01 14:34:36 -08:00
Tj Holowaychuk
fe266ae4fe misc refactoring 2011-03-01 14:32:59 -08:00
Tj Holowaychuk
7c15cdeb69 misc refactoring 2011-03-01 14:30:48 -08:00
Tj Holowaychuk
848086947c refactor errorHandler registration 2011-03-01 14:20:25 -08:00
Tj Holowaychuk
5ec4ea754c misc refactoring 2011-03-01 14:18:14 -08:00
Tj Holowaychuk
41467d54df docs 2011-03-01 14:16:16 -08:00
Tj Holowaychuk
8261437764 Merge branch 'features/https' 2011-03-01 14:08:40 -08:00
Tj Holowaychuk
54eac368d0 Finished https support 2011-03-01 14:06:53 -08:00
Tj Holowaychuk
72511ea1e9 Started https.js 2011-03-01 13:53:22 -08:00
Tj Holowaychuk
da7921f2c6 Moved server.js into http.js 2011-03-01 13:34:50 -08:00
Tj Holowaychuk
cd519e97e7 tests running again 2011-03-01 11:00:50 -08:00
Tj Holowaychuk
2a7a5aeefe Renaming usage of old connect middleware 2011-03-01 10:59:09 -08:00
Tj Holowaychuk
bdbacb41da prepping for connect 1.0 2011-03-01 10:54:04 -08:00
Tj Holowaychuk
2dd736a201 Updated expresso submodule 2011-03-01 10:45:07 -08:00
Tj Holowaychuk
ec3c797105 Updated connect submodule 2011-03-01 10:39:50 -08:00
Tj Holowaychuk
770f05c060 styling 2011-02-23 15:41:59 -08:00
Tj Holowaychuk
6993a27d8e refactored res.redirect() with res.req.header() for referrer 2011-02-23 15:39:06 -08:00
Tj Holowaychuk
68fd658536 more tests 2011-02-23 15:37:27 -08:00
Tj Holowaychuk
9fc349965d Changed; charsets are no longer implied 2011-02-23 15:24:56 -08:00
Tj Holowaychuk
0a667ff741 Added mime support submod 2011-02-23 15:23:48 -08:00
Tj Holowaychuk
d37ad85f72 replaced connect.utils.mime() with mime module 2011-02-23 15:23:08 -08:00
Tj Holowaychuk
2b63568611 node >= 0.4.0 2011-02-21 13:46:40 -08:00
Tj Holowaychuk
fcf9f93825 2.0.0-pre 2011-02-21 13:46:26 -08:00
Tj Holowaychuk
07efc0b73b clean up generated app 2011-02-21 13:43:00 -08:00
Tj Holowaychuk
6813b48c7e replaced link to express-contrib with new solo repos 2011-02-21 11:37:19 -08:00
Tj Holowaychuk
d58444c6d2 Updated ejs submodule 2011-02-17 23:41:28 -08:00
Tj Holowaychuk
dd8a0bd30f removed .config (unused prop) 2011-02-15 14:09:01 -08:00
Tj Holowaychuk
b65b0636aa Added req.header() Referrer / Referer special-case 2011-02-14 19:38:01 -08:00
Tj Holowaychuk
9ec6321261 qs >= 0.0.6 2011-02-14 15:26:00 -08:00
Tj Holowaychuk
07eb66c205 Fixed res.download() callback, passing stream. Closes #528
should be able to figure something out with this.
at very least use redis or something with INCR/DECR to
keep a count on active downloads
2011-02-10 08:57:53 -08:00
Tj Holowaychuk
0e790e6fb5 using Stream#pipe() instead of sys.pump() 2011-02-10 08:50:11 -08:00
Tj Holowaychuk
08186924a4 qs >= 0.0.3 2011-02-08 16:57:09 -08:00
Tj Holowaychuk
e9faf5cf94 Updated qs submodule 2011-02-08 16:56:33 -08:00
Tj Holowaychuk
8c0efe09e5 comment typo 2011-02-08 12:34:00 -08:00
Tj Holowaychuk
32d2c96d22 docs 2011-02-08 11:07:06 -08:00
Tj Holowaychuk
e958988989 styling for stylus example 2011-02-08 11:01:53 -08:00
Tj Holowaychuk
131f10bd80 more work on stylus example 2011-02-08 10:55:22 -08:00
Tj Holowaychuk
a61615a196 Setting up Stylus example 2011-02-08 10:42:39 -08:00
Tj Holowaychuk
4fdb6910a5 Allow req.query to be pre-defined (via middleware or other parent app) 2011-02-07 16:30:38 -08:00
Tj Holowaychuk
67c4c90351 Updated qs submodule 2011-02-07 15:35:46 -08:00
Tj Holowaychuk
16f7288b19 Updated connect submodule 2011-02-07 15:35:43 -08:00
Tj Holowaychuk
36a7e87ae4 querystring -> qs 2011-02-07 14:36:28 -08:00
Tj Holowaychuk
16badda118 Added test for periods in dirname when using "view engine" 2011-02-07 13:59:14 -08:00
Tj Holowaychuk
99820e7edc Refactored req/res proto assignments
since the names may change in the near future (is suspect at least)
due to inconsistancies
2011-02-03 21:05:04 -08:00
Tj Holowaychuk
6a03a92f5f Refactored res.header() 2011-02-03 21:03:27 -08:00
Tj Holowaychuk
80c3b98a84 Added multiple Set-Cookie header tests 2011-02-03 21:01:28 -08:00
Tj Holowaychuk
afd2b4b387 Removed alternate installation methods (use git, tarball, or npm) 2011-02-03 21:00:33 -08:00
Tj Holowaychuk
df49769f3d Fixed two tests 2011-02-03 20:49:53 -08:00
Tj Holowaychuk
05c2946322 Added qs submod 2011-02-03 20:47:54 -08:00
Tj Holowaychuk
2ed392edbf Updated connect submodule 2011-02-03 20:44:19 -08:00
Tj Holowaychuk
3d597a554d moved files from lib/express/* to lib/ 2011-02-03 20:20:42 -08:00
Tj Holowaychuk
42af4e40ae Updated connect submodule 2011-02-03 20:19:32 -08:00
Tj Holowaychuk
242efc7219 Updated jade submodule 2011-02-02 09:42:09 -08:00
Tj Holowaychuk
a6bacb857d Added redis session example 2011-02-01 10:02:15 -08:00
Tj Holowaychuk
eab54724a1 connect >= 0.5.7 2011-02-01 08:32:50 -08:00
Tj Holowaychuk
49885cfeff Updated connect submodule 2011-02-01 08:31:14 -08:00
Tj Holowaychuk
4330f49011 Added stylus support to express(1) generated app 2011-01-31 14:40:19 -08:00
Tj Holowaychuk
7687299275 Added secret to session middleware used in examples and generated app 2011-01-29 12:36:48 -08:00
Tj Holowaychuk
79ba787b03 Re-added jade submodule to hopefully fix #514 2011-01-28 12:04:12 -08:00
Tj Holowaychuk
5a184a205f Removed jade submodule 2011-01-28 12:03:39 -08:00
Tj Holowaychuk
4b5a6b597a Added formidable submod for multipart example 2011-01-25 10:04:06 -08:00
Tj Holowaychuk
9e9c3eeb79 Added vhost example 2011-01-25 09:38:02 -08:00
Tj Holowaychuk
cd996f9dbf Updated connect submodule 2011-01-25 09:12:24 -08:00
Tj Holowaychuk
ab4c91158a Added another partial locals test 2011-01-25 07:56:20 -08:00
Tj Holowaychuk
1130a23e5b Added test for partial locals on subsequent calls 2011-01-25 07:39:14 -08:00
Tj Holowaychuk
9ac6943220 Updated jade submodule 2011-01-24 11:45:58 -08:00
Tj Holowaychuk
0f55284b77 Updated changelog 2011-01-20 08:39:29 -08:00
Tj Holowaychuk
c75046de3f docs 2011-01-19 11:01:59 -08:00
Tj Holowaychuk
e7df82f110 Added 416 support to res.sendfile() 2011-01-19 09:28:48 -08:00
Tj Holowaychuk
ee4c7d3007 Removed "stream threshold" setting 2011-01-19 09:17:27 -08:00
Tj Holowaychuk
2895303421 Added Content-Length to res.sendfile(). Closes #507 2011-01-19 09:07:05 -08:00
Tj Holowaychuk
3f16f05525 Added HEAD support to res.sendfile() 2011-01-19 08:47:42 -08:00
Tj Holowaychuk
fb33671923 Ignore testing.js 2011-01-19 08:43:51 -08:00
Tj Holowaychuk
482fb5b6e2 Strip unsafe chars from jsonp callbacks 2011-01-13 14:13:16 -08:00
Tj Holowaychuk
b1004b61f9 fixed session example/tests due to connect changes 2011-01-13 12:11:18 -08:00
Tj Holowaychuk
27af9b2605 Updated connect submodule 2011-01-13 12:09:49 -08:00
Tj Holowaychuk
e28ac866f8 fixed width for github example css 2011-01-12 10:17:31 -08:00
Tj Holowaychuk
5e0a80f227 Updated connect submodule 2011-01-09 23:42:42 -08:00
Tj Holowaychuk
ec0982ca1f Added flash messages to blog example 2011-01-05 19:09:56 -08:00
Tj Holowaychuk
e7c442d21c Updated connect submodule 2011-01-03 13:34:36 -08:00
Tj Holowaychuk
a9db47fdd3 Updated connect submodule 2011-01-03 13:30:54 -08:00
Tj Holowaychuk
b856a72886 more examples 2010-12-31 16:13:19 -08:00
Tj Holowaychuk
03da0d31f9 Styling 2010-12-31 15:46:50 -08:00
Tj Holowaychuk
1c40e4374b More example 2010-12-31 15:37:27 -08:00
Tj Holowaychuk
d7df1426f2 Updated connect submodule 2010-12-31 15:07:00 -08:00
Tj Holowaychuk
5035e86f59 more example 2010-12-31 15:03:00 -08:00
Tj Holowaychuk
0af91265ab Added default param support to req.param(name, default) 2010-12-31 09:21:51 -08:00
Tj Holowaychuk
8e63d04e66 Re-built docs 2010-12-31 09:04:44 -08:00
Tj Holowaychuk
5ac0c6deb0 Added res.local(name[, val]) docs 2010-12-31 09:04:30 -08:00
Tj Holowaychuk
6b0d82fb0c Added res.local() for progressive view locals
for middleware etc.
res.local("foo", "bar") => "bar"
res.local("foo") => "bar"
2010-12-31 08:59:35 -08:00
Tj Holowaychuk
2bfdfe366c Fixed for middleware stacked via createServer() 2010-12-29 11:21:24 -08:00
Tj Holowaychuk
898fb0f320 Added failing middleware precedence tests 2010-12-29 11:15:40 -08:00
Tj Holowaychuk
f53686a2f3 Fixed index view resolution bug introduced by 1c2e9a476c 2010-12-29 08:57:56 -08:00
mgutz
eae1670f54 madestr local 2010-12-29 08:45:22 -08:00
Tj Holowaychuk
544d68833c Fixed express(1) support for < 0.3.x 2010-12-28 12:00:04 -08:00
Tj Holowaychuk
c24a6b2359 Fixed express(1) mode 2010-12-28 11:56:44 -08:00
Tj Holowaychuk
b720b57d1d Updated jade submodule 2010-12-28 04:59:28 -08:00
Tj Holowaychuk
365b7fe90a Merge branch 'OPTIONS' 2010-12-28 04:05:44 -08:00
Tj Holowaychuk
c7ab833e66 Added OPTIONS test 2010-12-28 04:05:39 -08:00
Tj Holowaychuk
9536f288e9 Updated connect submodule 2010-12-28 04:03:43 -08:00
Tj Holowaychuk
e64d4039d0 Generating methods based on connect.router.methods 2010-12-28 03:12:11 -08:00
Tj Holowaychuk
5f077e56f0 Updated connect submodule 2010-12-28 03:09:07 -08:00
Tj Holowaychuk
a9253a24e0 Added docs for app.{disabled,enabled}() 2010-12-23 09:29:43 -08:00
Tj Holowaychuk
749136b526 Added app.disabled() and app.enabled() 2010-12-23 09:28:15 -08:00
Tj Holowaychuk
36a8b7b7f3 Docs 2010-12-22 15:49:37 -08:00
Tj Holowaychuk
a29908c865 Few jade changes to partials example 2010-12-22 15:48:41 -08:00
Hunter Loftis
57d87c27cd Created examples/partials to demonstrate view name, file, object resolution 2010-12-22 15:44:26 -08:00
Hunter Loftis
1c2e9a476c Fixed _ prefix object resolution on partials (resolveObjectName), added _ prefix fallback to view file resolution (prefixPath) 2010-12-22 15:44:26 -08:00
shuwatto
5d87133df0 Constants don't exist in process. The same problem is reported following link https://github.com/senchalabs/connect/issues/closed#issue/119 2010-12-21 09:04:23 -08:00
Tj Holowaychuk
fd2f67b73f Route precondition docs 2010-12-20 05:53:50 -08:00
Tj Holowaychuk
d3abcaf67b Regenerated docs 2010-12-20 05:41:05 -08:00
Tj Holowaychuk
14dce5ac2b Docs 2010-12-20 05:40:51 -08:00
Tj Holowaychuk
abd002071a Test for named capture groups 2010-12-20 05:29:01 -08:00
Tj Holowaychuk
77add42eeb Updated connect submodule 2010-12-20 05:27:21 -08:00
Tj Holowaychuk
bba049b4bf Docs 2010-12-20 05:27:07 -08:00
Tj Holowaychuk
4e41c3520c Contrib guide link 2010-12-20 05:18:32 -08:00
Tj Holowaychuk
4144af3351 Added screencasts page 2010-12-20 05:17:25 -08:00
Tj Holowaychuk
30f749a2a2 Docs 2010-12-20 05:05:47 -08:00
Tj Holowaychuk
6e9f282af7 added .npmignore 2010-12-18 13:42:43 -08:00
Tj Holowaychuk
4491be01dd Using named capture group for downloads example 2010-12-16 09:21:31 -08:00
Tj Holowaychuk
8c163fd980 Updated connect-form submodule 2010-12-15 09:45:45 -08:00
Tj Holowaychuk
9f6a158fc2 Fixed SyntaxError in express(1) app tests 2010-12-14 08:20:00 -08:00
Tj Holowaychuk
19965fa3c8 Aliased app.helpers() as app.locals(). Closes #481 2010-12-12 16:10:59 -08:00
Tj Holowaychuk
6bb42ffafc should 2010-12-12 16:10:01 -08:00
Tj Holowaychuk
4a1edc0720 indentation fix 2010-12-12 16:08:27 -08:00
Tj Holowaychuk
a5a016bf33 Updated connect submodule 2010-12-10 12:42:55 -08:00
Tj Holowaychuk
4be4f597a3 Updated connect submodule 2010-12-10 12:42:36 -08:00
Tj Holowaychuk
dfbbd4f784 Merge branch 'partials' 2010-12-10 10:18:44 -08:00
Tj Holowaychuk
2662dae560 Removed "_" prefix from partials 2010-12-10 10:18:38 -08:00
Tj Holowaychuk
6f6f9f08f8 Added app.register() support for omitting leading "." 2010-12-10 08:15:27 -08:00
Tj Holowaychuk
a76fba57c4 Added extname with no leading "." support to res.contentType)
For example now you may:

    res.contentType("png");

or

    res.contentType(".png");

both are fine now
2010-12-10 08:14:15 -08:00
Tj Holowaychuk
680766f29b Updated jade submodule 2010-12-08 10:29:07 -08:00
Tj Holowaychuk
adcfd4ca4d Added more screencast links 2010-12-06 19:25:17 -08:00
Tj Holowaychuk
e276a49a91 Updated connect submodule 2010-12-06 18:13:07 -08:00
Tj Holowaychuk
5995f763b1 connect >= 0.5.0 2010-12-06 18:11:34 -08:00
Tj Holowaychuk
a123639b5c Fixed placeholder example 2010-12-06 17:45:01 -08:00
Tj Holowaychuk
8a118d53c8 Fixed some namespaced connect requires 2010-12-06 17:41:56 -08:00
Tj Holowaychuk
d572391532 Updated connect submodule 2010-12-06 17:39:27 -08:00
Tj Holowaychuk
58ae7a0402 Added param placeholder precondition example 2010-12-06 17:38:51 -08:00
Tj Holowaychuk
f843093a8c Added Array support to Server#param() 2010-12-06 17:28:17 -08:00
Tj Holowaychuk
3e06586f81 Added Server#param() 2010-12-06 17:18:44 -08:00
Tj Holowaychuk
60f148326a Updated expresso submodule 2010-12-06 17:05:30 -08:00
Tj Holowaychuk
02e1413ca5 Updated connect submodule 2010-12-06 17:04:50 -08:00
Tj Holowaychuk
7b4b85ee54 Updated connect submodule 2010-12-06 14:53:14 -08:00
Tj Holowaychuk
6c0a416f16 Added view partials screencast link 2010-12-05 11:06:26 -08:00
Tj Holowaychuk
23cc88bf92 Added introduction screencast link 2010-12-05 10:44:13 -08:00
Tj Holowaychuk
5528f0ddf2 Misc refactoring 2010-12-05 10:13:06 -08:00
Tj Holowaychuk
8d3296fb1b Fixed mvc example due to view lookup changes 2010-12-05 10:02:38 -08:00
Tj Holowaychuk
136f9209a3 route-separation example using new view resolution 2010-12-05 10:00:07 -08:00
Tj Holowaychuk
a290134fd2 Merge branch 'view-index' 2010-12-05 09:56:20 -08:00
Tj Holowaychuk
a54e59666a Added view index resolution support 2010-12-05 09:55:11 -08:00
Tj Holowaychuk
42ea6af1eb Added view index template support 2010-12-05 09:49:11 -08:00
Tj Holowaychuk
f9b741766b Started view index support 2010-12-05 09:46:59 -08:00
Tj Holowaychuk
09359329a0 ejs example using new partial lookup 2010-12-05 09:37:50 -08:00
Tj Holowaychuk
647bb41ddf Merge branch 'partial-lookup' 2010-12-05 09:33:26 -08:00
Tj Holowaychuk
f25c14d48d Fixed partial parent view ref 2010-12-05 09:33:20 -08:00
Tj Holowaychuk
81a3d559f5 Removed a require 2010-12-05 09:22:19 -08:00
Tj Holowaychuk
4e0ee7a5da Added more partial view path tests 2010-12-05 09:20:58 -08:00
Tj Holowaychuk
1c80a258d2 Passing dir 2010-12-05 09:17:20 -08:00
Tj Holowaychuk
129ed6a07b Added Partial#resolvePartialPath() 2010-12-05 09:16:12 -08:00
Tj Holowaychuk
df09a0c73b Partial tests using real fixtures 2010-12-05 09:13:41 -08:00
Tj Holowaychuk
ff5c958354 express(1) no longer passing assert in tests 2010-12-02 15:51:52 -08:00
Tj Holowaychuk
4f90c89db6 refactored req.accepts() 2010-12-02 10:07:28 -08:00
Tj Holowaychuk
524b515fdb docs 2010-12-02 10:06:40 -08:00
Tj Holowaychuk
163256b001 Added req.accepts() support for extensions 2010-12-02 10:05:29 -08:00
Tj Holowaychuk
05bbc65dcc Added failing req.accepts() test 2010-12-02 10:03:59 -08:00
Tj Holowaychuk
6624f6b7f9 Added more req.accepts() tests 2010-12-02 10:03:25 -08:00
Tj Holowaychuk
f32279dec5 more partial docs 2010-11-29 17:20:13 -08:00
Tj Holowaychuk
a90fd85907 Added strategic cache example (with redis) 2010-11-29 17:01:28 -08:00
Tj Holowaychuk
9815b27e94 Updated connect submodule 2010-11-29 09:57:53 -08:00
Tj Holowaychuk
ebbe481fe7 Added default link color for express(1) generated apps 2010-11-28 13:19:23 -08:00
Tj Holowaychuk
9e337faa33 Removed ./views/partials generation in express(1) 2010-11-28 10:45:48 -08:00
Tj Holowaychuk
37826e0261 Fixed locals in express(1) generated app 2010-11-28 10:29:10 -08:00
Tj Holowaychuk
20e4342796 Fixed uncached templates in development 2010-11-25 15:46:57 -08:00
Tj Holowaychuk
51be16950d Added isLayout back 2010-11-25 14:54:42 -08:00
Tj Holowaychuk
be866a78ff fixed session example 2010-11-25 14:14:31 -08:00
Tj Holowaychuk
f9d2432c69 fixed route-separation example 2010-11-25 14:14:13 -08:00
Tj Holowaychuk
6543a3d75a added format support to resource example 2010-11-25 14:11:52 -08:00
Tj Holowaychuk
a77936981e Fixed resource example 2010-11-25 14:08:27 -08:00
Tj Holowaychuk
6f2120bb59 Fixed mvc example 2010-11-25 14:05:28 -08:00
Tj Holowaychuk
98e18239fd refactored multipart example 2010-11-25 13:59:10 -08:00
Tj Holowaychuk
3d159015be misc 2010-11-25 13:56:12 -08:00
Tj Holowaychuk
f5af66a1ab fixed github example 2010-11-25 13:53:51 -08:00
Tj Holowaychuk
540192ff96 refactored format example 2010-11-25 13:50:32 -08:00
Tj Holowaychuk
c1cfd4a8c6 refactored form example 2010-11-25 13:47:49 -08:00
Tj Holowaychuk
322300c329 fixed flash example 2010-11-25 13:46:40 -08:00
Tj Holowaychuk
1ac18f7903 refactored error-pages example 2010-11-25 13:44:52 -08:00
Tj Holowaychuk
4f4987e9ea misc 2010-11-25 13:41:50 -08:00
Tj Holowaychuk
65bf562ff4 refactored downloads example 2010-11-25 13:41:15 -08:00
Tj Holowaychuk
f47032e7e9 refactored cookies example 2010-11-25 13:40:50 -08:00
Tj Holowaychuk
379f3ec8dd removed blog example 2010-11-25 13:40:02 -08:00
Tj Holowaychuk
8d7e35b723 refactored auth example 2010-11-25 13:39:07 -08:00
Tj Holowaychuk
1349eea0d0 misc refactoring 2010-11-24 14:44:00 -08:00
Tj Holowaychuk
bed5157f32 Make note in docs that res.send() is a convenience method, and should only be called once (ATM) 2010-11-24 10:07:25 -08:00
Tj Holowaychuk
12c7f51a1e Updated jade submodule 2010-11-24 08:14:36 -08:00
Tj Holowaychuk
7e32c8de4d unroll partial rendering for performance 2010-11-23 10:27:26 -08:00
Tj Holowaychuk
3a42350c21 cache resolveObjectName() 2010-11-23 10:14:30 -08:00
Tj Holowaychuk
1a54597202 todo 2010-11-23 10:07:24 -08:00
Tj Holowaychuk
39f4eb9940 Added "cache views" setting, defaulting to enabled in "production" env 2010-11-23 09:49:43 -08:00
Tj Holowaychuk
4b996651af fixed template caching 2010-11-23 09:45:50 -08:00
Tj Holowaychuk
884d40f321 caching compiled view functions 2010-11-23 09:42:19 -08:00
Tj Holowaychuk
3d2b41da08 todo 2010-11-23 09:07:36 -08:00
Tj Holowaychuk
1bf2dbb7df Added memoized path utils 2010-11-23 08:58:36 -08:00
Tj Holowaychuk
e0dfb77dd1 misc refactoring 2010-11-22 21:08:24 -08:00
Tj Holowaychuk
578fddc1b7 cache view contents again 2010-11-22 18:28:19 -08:00
Tj Holowaychuk
089355d706 Merge branch 'views' 2010-11-22 17:55:17 -08:00
Tj Holowaychuk
6b2c3caf03 fixed register 2010-11-22 17:55:14 -08:00
Tj Holowaychuk
065c37cb28 moved View and Partial into their own files 2010-11-22 17:52:45 -08:00
Tj Holowaychuk
3a40025fd3 Merge branch 'views' 2010-11-22 17:36:59 -08:00
Tj Holowaychuk
8dc341d868 removed old code 2010-11-22 17:36:50 -08:00
Tj Holowaychuk
0ed121ddbd Merge branch 'views' 2010-11-22 17:24:50 -08:00
Tj Holowaychuk
969f4229dc added Partial.resolveObjectName() 2010-11-22 17:24:44 -08:00
Tj Holowaychuk
27a940184e removed old cacheViewSync() 2010-11-22 17:02:50 -08:00
Tj Holowaychuk
77fa09a506 relative view option 2010-11-22 16:58:39 -08:00
Tj Holowaychuk
8836104ab2 absolute layouts 2010-11-22 16:56:55 -08:00
Tj Holowaychuk
396837517d fixed ejs example for new locals 2010-11-22 16:43:47 -08:00
Tj Holowaychuk
38b3f1bde2 fixed "view options" support 2010-11-22 16:41:56 -08:00
Tj Holowaychuk
4780168ba8 implementing new locals 2010-11-22 16:39:55 -08:00
Tj Holowaychuk
d1a790d103 fixed jade example for new locals 2010-11-22 16:32:51 -08:00
Tj Holowaychuk
3ad6ab8c6a removed locals: from view tests 2010-11-22 16:24:05 -08:00
Tj Holowaychuk
1e189da85e refactored dynamicHelper support 2010-11-22 16:19:53 -08:00
Tj Holowaychuk
a094c50873 indentation 2010-11-22 16:16:29 -08:00
Tj Holowaychuk
ad324410c6 Utilizing the new View / Partial constructors 2010-11-22 16:12:30 -08:00
Tj Holowaychuk
9f4b7368a0 Started View implementation 2010-11-22 11:33:20 -08:00
Tj Holowaychuk
c8ddedb8d0 jade example fixes 2010-11-19 17:12:34 -08:00
Tj Holowaychuk
7deab2826b Updated jade submodule 2010-11-19 17:08:35 -08:00
Tj Holowaychuk
643879f779 using should / refactored tests 2010-11-19 16:00:21 -08:00
Tj Holowaychuk
ce2a18f483 master is 2.0.0-pre 2010-11-18 07:48:31 -08:00
333 changed files with 12499 additions and 13975 deletions

12
.gitignore vendored
View File

@@ -1,3 +1,4 @@
coverage.html
.DS_Store
lib-cov
*.seed
@@ -6,4 +7,13 @@ lib-cov
*.dat
*.out
*.pid
benchmarks/graphs
*.swp
*.swo
benchmarks/graphs
testing
node_modules/
testing
.coverage_data
cover_html
test.js
.idea

18
.gitmodules vendored
View File

@@ -1,18 +0,0 @@
[submodule "support/expresso"]
path = support/expresso
url = git://github.com/visionmedia/expresso.git
[submodule "support/haml"]
path = support/haml
url = git://github.com/visionmedia/haml.js.git
[submodule "support/ejs"]
path = support/ejs
url = git://github.com/visionmedia/ejs.git
[submodule "support/connect-form"]
path = support/connect-form
url = git://github.com/visionmedia/connect-form.git
[submodule "support/connect"]
path = support/connect
url = git://github.com/senchalabs/connect.git
[submodule "support/jade"]
path = support/jade
url = git://github.com/visionmedia/jade.git

9
.npmignore Normal file
View File

@@ -0,0 +1,9 @@
.git*
docs/
examples/
support/
test/
testing.js
.DS_Store
coverage.html
lib-cov

4
.travis.yml Normal file
View File

@@ -0,0 +1,4 @@
language: node_js
node_js:
- "0.8"
- "0.10"

View File

@@ -1,5 +1,711 @@
1.0.0 / 2010-11-16
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)` implementing `res.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.auth` test 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.view` property for view errors. Closes #1226
* add "jsonp callback name" setting
* add support for "/foo/:bar*" non-greedy matches
* change `res.sendfile()` to use `send()` module
* change `res.send` to use "response-send" module
* remove `app.locals.use` and `res.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 to `res.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 `--hjs` to express(1) [nullfirm]
* Added another example to content-negotiation
* Added `fresh` dep
* Changed: `res.send()` always checks freshness
* Fixed: expose connects mime module. Cloases #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 to `res.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 `PORT` env 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 test` now runs unit / acceptance tests
* Fixed req/res proto inheritance
3.0.0alpha2 / 2012-04-26
==================
* Added `make benchmark` back
* Added `res.send()` support for `String` objects
* Added client-side data exposing example
* Added `res.header()` and `req.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.locals` object
* Added `app.locals(obj)`
* Added `res.locals` object
* 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-delmited / 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 `--less` support to express(1)
* Added `express.response` prototype
* Added `express.request` prototype
* Added `express.application` prototype
* Added `app.path()`
* Added `app.render()`
* Added `res.type()` to replace `res.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 app `app.address()` before `listening` [mmalecki]
2.5.8 / 2012-02-08
==================
* Update mkdirp dep. Closes #991
2.5.7 / 2012-02-06
==================
* Fixed `app.all` duplicate DELETE requests [mscdex]
2.5.6 / 2012-01-13
==================
* Updated hamljs dev dep. Closes #953
2.5.5 / 2012-01-08
==================
* Fixed: set `filename` on 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-cov` since 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 `Route` to 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 to `join()` usage. Closes #808
2.4.4 / 2011-08-05
==================
* Fixed `res.header()` intention of a set, even when `undefined`
* Fixed `*`, value no longer required
* Fixed `res.send(204)` support. Closes #771
2.4.3 / 2011-07-14
==================
* Added docs for `status` option 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()` using `res.json()`
* Changed: when cookie `path === null` don'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 of `res.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-negotiation` example
* 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 `../' in `res.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 `.view` as 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()` as `app.match.all()`
* Added `app.lookup()` as `app.lookup.all()`
* Added `app.remove()` for `app.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 of `res.locals()`
* Added; json defaults to UTF-8 with `res.send()`. Closes #632. [Daniel * Dependency `connect >= 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 `filename` option 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 `.length` would work.
When `.length` is present one must still be aware of holes,
however now `{ collection: {foo: 'bar'}}` is valid, exposes
`keyInCollection` and `keysInCollection`.
* Performance improved with better view caching
* Removed `request` and `response` locals
* Changed; errorHandler page title is now `Express` instead of `Connect`
2.2.0 / 2011-03-30
==================
* Added `app.lookup.VERB()`, ex `app.lookup.put('/user/:id')`. Closes #606
* Added `app.match.VERB()`, ex `app.match.put('/user/12')`. Closes #606
* Added `app.VERB(path)` as alias of `app.lookup.VERB()`.
* Dependency `connect >= 1.2.0`
2.1.1 / 2011-03-29
==================
* Added; expose `err.view` object when failing to locate a view
* Fixed `res.partial()` call `next(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`, and `app` local variables
* Added `settings` local variable, containing the app's settings
* Added `req.flash()` exception if `req.session` is 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 compliment `res.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 `SlowBuffer` support. Closes #584 [reported by tyrda01]
* Fixed .filename view engine option [reported by drudge]
* Fixed blog example
* Fixed `{req,res}.app` reference when mounting [Ben Weaver]
2.0.0rc / 2011-03-14
==================
* Fixed; expose `HTTPSServer` constructor
* 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 original `res.contentType('.json')`,
`res.contentType('application/json')`, and `res.contentType('json')`
will work now.
* Added `res.render()` status option support back
* Added charset option for `res.render()`
* Added `.charset` support (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.jade` if you create
`./views/user/layout.jade` it 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 `Partial` constructor (not currently used)
2.0.0beta2 / 2011-03-07
==================
* Added res.render() `.locals` support 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 of `merge(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()` and `app.enabled()`
* Added `app.register()` support for omitting leading ".", either works
* Added `res.partial()`, using the same interface as `partial()` within a view. Closes #539
* Added `app.param()` to map route params to async/sync logic
* Added; aliased `app.helpers()` as `app.locals()`. Closes #481
* Added extname with no leading "." support to `res.contentType()`
* Added `cache views` setting, 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()` and `res.sendfile()` now utilize Connect's
static file server `connect.static.send()`.
* Changed; replaced `connect.utils.mime()` with npm _mime_ module
* Changed; allow `req.query` to 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)`, now `engine.compile(str, options) -> Function`, the returned function accepts `fn(locals)`.
* Fixed `req.param()` bug returning Array.prototype methods. Closes #552
* Fixed; using `Stream#pipe()` instead of `sys.pump()` in `res.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.query` to 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 engine` setting 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 `qs` dependency 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 the `foo` middleware passed to `createServer(foo)`
would not have access to Express methods such as `res.send()`
or props like `req.query` etc.
1.0.0 / 2010-11-16
==================
* Added; deduce partial object names from the last segment.
@@ -13,7 +719,7 @@
* 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
* 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.
@@ -26,7 +732,7 @@
* 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
1.0.0rc4 / 2010-10-14
==================
* Added _NODE_ENV_ support, _EXPRESS_ENV_ is deprecated and will be removed in 1.0.0
@@ -45,7 +751,7 @@
* Fixed; exposing _./support_ libs to examples so they can run without installs
* Fixed mvc example
1.0.0rc3 / 2010-09-20
1.0.0rc3 / 2010-09-20
==================
* Added confirmation for `express(1)` app generation. Closes #391
@@ -68,7 +774,7 @@
* Fixed bug messing with error handlers when `listenFD()` is called instead of `listen()`. [thanks guillermo]
1.0.0rc2 / 2010-08-17
1.0.0rc2 / 2010-08-17
==================
* Added `app.register()` for template engine mapping. Closes #390
@@ -81,7 +787,7 @@
* Fixed `res.sendfile()` error handling, defer via `next()`
* Fixed `res.render()` callback when a layout is used [thanks guillermo]
* Fixed; `make install` creating ~/.node_libraries when not present
* Fixed issue preventing error handlers from being defined anywhere. Closes #387
* Fixed issue preventing error handlers from being defined anywhere. Closes #387
1.0.0rc / 2010-07-28
==================
@@ -99,7 +805,7 @@
* Fixed "home" setting
* Fixed middleware/router precedence issue. Closes #366
* Fixed; _configure()_ callbacks called immediately. Closes #368
1.0.0beta2 / 2010-07-23
==================
@@ -234,7 +940,7 @@
* Updated dependencies
* Removed set("session cookie") in favour of use(Session, { cookie: { ... }})
* Removed utils.mixin(); use Object#mergeDeep()
0.8.0 / 2010-03-19
==================
@@ -301,16 +1007,16 @@
* 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

View File

@@ -1,6 +1,6 @@
(The MIT License)
Copyright (c) 2009-2010 TJ Holowaychuk <tj@vision-media.ca>
Copyright (c) 2009-2011 TJ Holowaychuk <tj@vision-media.ca>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

View File

@@ -1,76 +1,33 @@
PREFIX ?= /usr/local
LIB_PREFIX = ~/.node_libraries
MOCHA_OPTS= --check-leaks
REPORTER = dot
DOCS = docs/index.md \
docs/executable.md \
docs/contrib.md \
docs/guide.md \
docs/migrate.md \
docs/applications.md
check: test
MANPAGES =$(DOCS:.md=.1)
HTMLDOCS =$(DOCS:.md=.html)
test: test-unit test-acceptance
install: install-docs
@mkdir -p $(PREFIX)/bin
@mkdir -p $(LIB_PREFIX)
cp -f bin/express $(PREFIX)/bin/express
cp -fr lib/express $(LIB_PREFIX)/express
test-unit:
@NODE_ENV=test ./node_modules/.bin/mocha \
--reporter $(REPORTER) \
$(MOCHA_OPTS)
uninstall: uninstall-docs
rm -f $(PREFIX)/bin/express
rm -fr $(LIB_PREFIX)/express
test-acceptance:
@NODE_ENV=test ./node_modules/.bin/mocha \
--reporter $(REPORTER) \
--bail \
test/acceptance/*.js
install-support:
cd support/connect && $(MAKE) install
test-cov: lib-cov
@EXPRESS_COV=1 $(MAKE) test REPORTER=html-cov > coverage.html
uninstall-support:
cd support/connect && $(MAKE) uninstall
lib-cov:
@jscoverage lib lib-cov
install-docs:
@mkdir -p $(PREFIX)/share/man/man1
cp -f docs/executable.1 $(PREFIX)/share/man/man1/express.1
benchmark:
@./support/bench
uninstall-docs:
rm -f $(PREFIX)/share/man/man1/express.1
clean:
rm -f coverage.html
rm -fr lib-cov
test:
@NODE_ENV=test ./support/expresso/bin/expresso \
-I lib \
-I support/connect/lib \
-I support/haml/lib \
-I support/jade/lib \
-I support/ejs/lib \
$(TESTFLAGS) \
test/*.test.js
test-cov:
@TESTFLAGS=--cov $(MAKE) test
docs: docs/api.html $(MANPAGES) $(HTMLDOCS)
@ echo "... generating TOC"
@./support/toc.js docs/guide.html
docs/api.html: lib/express/*.js
dox \
--private \
--title Express \
--desc "High performance web framework for [node](http://nodejs.org)." \
$(shell find lib/express/* -type f) > $@
%.1: %.md
@echo "... $< -> $@"
@ronn -r --pipe $< > $@
%.html: %.md
@echo "... $< -> $@"
@ronn -5 --pipe --fragment $< \
| cat docs/layout/head.html - docs/layout/foot.html \
| sed 's/NAME/Express/g' \
> $@
docclean:
rm -f docs/*.{1,html}
.PHONY: install uninstall install-docs install-support uninstall-support install-docs uninstall-docs test test-cov docs docclean
.PHONY: test test-unit test-acceptance benchmark clean

179
Readme.md
View File

@@ -1,87 +1,164 @@
![express logo](http://f.cl.ly/items/0V2S1n0K1i3y1c122g04/Screen%20Shot%202012-04-11%20at%209.59.42%20AM.png)
# Express
Insanely fast (and small) server-side JavaScript web development framework
built on [node](http://nodejs.org) and [Connect](http://github.com/senchalabs/connect).
var app = express.createServer();
app.get('/', function(req, res){
res.send('Hello World');
});
Fast, unopinionated, minimalist web framework for [node](http://nodejs.org). [![Build Status](https://secure.travis-ci.org/visionmedia/express.png)](http://travis-ci.org/visionmedia/express) [![Dependency Status](https://gemnasium.com/visionmedia/express.png)](https://gemnasium.com/visionmedia/express)
app.listen(3000);
```js
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
```
## Installation
npm:
$ npm install -g express
$ npm install express
## Quick Start
curl:
The quickest way to get started with express is to utilize the executable `express(1)` to generate an application as shown below:
$ curl -# http://expressjs.com/install.sh | sh
Create the app:
$ npm install -g express
$ express /tmp/foo && cd /tmp/foo
Install dependencies:
$ npm install
Start the server:
$ node app
## Features
* Built on [Connect](http://github.com/senchalabs/connect)
* Robust routing
* Redirection helpers
* Dynamic view helpers
* HTTP helpers (redirection, caching, etc)
* View system supporting 14+ template engines
* Content negotiation
* Focus on high performance
* View rendering and partials support
* Environment based configuration
* Session based flash notifications
* Built on [Connect](http://github.com/senchalabs/connect)
* High test coverage
* Executable for generating applications quickly
* Application level view options
* High test coverage
Via Connect:
## Philosophy
* Session support
* Cache API
* Mime helpers
* ETag support
* Persistent flash notifications
* Cookie support
* JSON-RPC
* Logging
* and _much_ more!
The Express philosophy is to provide small, robust tooling for HTTP servers. Making
it a great solution for single page applications, web sites, hybrids, or public
HTTP APIs.
## Contributors
The following are the major contributors of Express (in no specific order).
* TJ Holowaychuk ([visionmedia](http://github.com/visionmedia))
* Ciaran Jessup ([ciaranj](http://github.com/ciaranj))
* Aaron Heckmann ([aheckmann](http://github.com/aheckmann))
* Guillermo Rauch ([guille](http://github.com/guille))
Built on Connect you can use _only_ what you need, and nothing more, applications
can be as big or as small as you like, even a single file. Express does
not force you to use any specific ORM or template engine. With support for over
14 template engines via [Consolidate.js](http://github.com/visionmedia/consolidate.js)
you can quickly craft your perfect framework.
## More Information
* Express [Contrib](http://github.com/visionmedia/express-contrib) repo for additional functionality
* Follow [tjholowaychuk](http://twitter.com/tjholowaychuk) on twitter for updates
* Join #express on freenode
* [Google Group](http://groups.google.com/group/express-js) for discussion
* Follow [tjholowaychuk](http://twitter.com/tjholowaychuk) on twitter for updates
* Visit the [Wiki](http://github.com/visionmedia/express/wiki)
* [日本語ドキュメンテーション](http://hideyukisaito.com/doc/expressjs/) by [hideyukisaito](https://github.com/hideyukisaito)
* [Русскоязычная документация](http://jsman.ru/express/)
* Run express examples [online](https://runnable.com/express)
## Node Compatibility
The latest release of Express is compatible with node --version:
## Viewing Examples
v0.2.4
Clone the Express repo, then install the dev dependencies to install all the example / test suite deps:
and connect --version:
$ git clone git://github.com/visionmedia/express.git --depth 1
$ cd express
$ npm install
0.3.0
then run whichever tests you want:
Express 1.x is maintained in the _1.x_ branch.
$ node examples/content-negotiation
## License
## Running Tests
To run the test suite first invoke the following command within the repo, installing the development dependencies:
$ npm install
then run the tests:
$ make test
## Contributors
```
project: express
commits: 3559
active : 468 days
files : 237
authors:
1891 Tj Holowaychuk 53.1%
1285 visionmedia 36.1%
182 TJ Holowaychuk 5.1%
54 Aaron Heckmann 1.5%
34 csausdev 1.0%
26 ciaranj 0.7%
21 Robert Sköld 0.6%
6 Guillermo Rauch 0.2%
3 Dav Glass 0.1%
3 Nick Poulden 0.1%
2 Randy Merrill 0.1%
2 Benny Wong 0.1%
2 Hunter Loftis 0.1%
2 Jake Gordon 0.1%
2 Brian McKinney 0.1%
2 Roman Shtylman 0.1%
2 Ben Weaver 0.1%
2 Dave Hoover 0.1%
2 Eivind Fjeldstad 0.1%
2 Daniel Shaw 0.1%
1 Matt Colyer 0.0%
1 Pau Ramon 0.0%
1 Pero Pejovic 0.0%
1 Peter Rekdal Sunde 0.0%
1 Raynos 0.0%
1 Teng Siong Ong 0.0%
1 Viktor Kelemen 0.0%
1 ctide 0.0%
1 8bitDesigner 0.0%
1 isaacs 0.0%
1 mgutz 0.0%
1 pikeas 0.0%
1 shuwatto 0.0%
1 tstrimple 0.0%
1 ewoudj 0.0%
1 Adam Sanderson 0.0%
1 Andrii Kostenko 0.0%
1 Andy Hiew 0.0%
1 Arpad Borsos 0.0%
1 Ashwin Purohit 0.0%
1 Benjen 0.0%
1 Darren Torpey 0.0%
1 Greg Ritter 0.0%
1 Gregory Ritter 0.0%
1 James Herdman 0.0%
1 Jim Snodgrass 0.0%
1 Joe McCann 0.0%
1 Jonathan Dumaine 0.0%
1 Jonathan Palardy 0.0%
1 Jonathan Zacsh 0.0%
1 Justin Lilly 0.0%
1 Ken Sato 0.0%
1 Maciej Małecki 0.0%
1 Masahiro Hayashi 0.0%
```
## License
(The MIT License)
Copyright (c) 2009-2010 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
Copyright (c) 2009-2012 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

View File

@@ -4,82 +4,102 @@
* Module dependencies.
*/
var fs = require('fs')
, sys = require('sys')
, exec = require('child_process').exec;
var exec = require('child_process').exec
, program = require('commander')
, mkdirp = require('mkdirp')
, pkg = require('../package.json')
, version = pkg.version
, os = require('os')
, fs = require('fs');
// CLI
program
.version(version)
.option('-s, --sessions', 'add session support')
.option('-e, --ejs', 'add ejs engine support (defaults to jade)')
.option('-J, --jshtml', 'add jshtml engine support (defaults to jade)')
.option('-H, --hogan', 'add hogan.js engine support')
.option('-c, --css <engine>', 'add stylesheet <engine> support (less|stylus) (defaults to plain css)')
.option('-f, --force', 'force on non-empty directory')
.parse(process.argv);
// Path
var path = program.args.shift() || '.';
// end-of-line code
var eol = os.EOL
// Template engine
program.template = 'jade';
if (program.ejs) program.template = 'ejs';
if (program.jshtml) program.template = 'jshtml';
if (program.hogan) program.template = 'hjs';
/**
* Framework version.
* Routes index template.
*/
var version = '1.0.0';
var index = [
''
, '/*'
, ' * GET home page.'
, ' */'
, ''
, 'exports.index = function(req, res){'
, ' res.render(\'index\', { title: \'Express\' });'
, '};'
].join(eol);
/**
* stdin stream.
* Routes users template.
*/
var stdin;
/**
* Add session support.
*/
var sessions = false;
/**
* CSS engine to utilize.
*/
var cssEngine;
/**
* Template engine to utilize.
*/
var templateEngine = 'jade';
/**
* Usage documentation.
*/
var usage = ''
+ '\x1b[1mUsage\x1b[0m: express [options] [PATH]\n'
+ '\n'
+ '\x1b[1mOptions\x1b[0m:\n'
+ ' -s, --sessions Add session support\n'
+ ' -t, --template ENGINE Add template ENGINE support (jade|ejs). Defaults to jade\n'
+ ' -c, --css ENGINE Add stylesheet ENGINE support (less|sass). Defaults to plain css\n'
+ ' -v, --version Output framework version\n'
+ ' -h, --help Output help information\n'
;
var users = [
''
, '/*'
, ' * GET users listing.'
, ' */'
, ''
, 'exports.list = function(req, res){'
, ' res.send("respond with a resource");'
, '};'
].join(eol);
/**
* Jade layout template.
*/
var jadeLayout = [
'!!!'
'doctype 5'
, 'html'
, ' head'
, ' title= title'
, ' link(rel=\'stylesheet\', href=\'/stylesheets/style.css\')'
, ' body!= body'
].join('\n');
, ' body'
, ' block content'
].join(eol);
/**
* Jade index template.
*/
var jadeIndex = [
'h1= title'
, 'p Welcome to #{title}'
].join('\n');
'extends layout'
, ''
, 'block content'
, ' h1= title'
, ' p Welcome to #{title}'
].join(eol);
/**
* EJS layout template.
* EJS index template.
*/
var ejsLayout = [
var ejsIndex = [
'<!DOCTYPE html>'
, '<html>'
, ' <head>'
@@ -87,19 +107,54 @@ var ejsLayout = [
, ' <link rel=\'stylesheet\' href=\'/stylesheets/style.css\' />'
, ' </head>'
, ' <body>'
, ' <%- body %>'
, ' <h1><%= title %></h1>'
, ' <p>Welcome to <%= title %></p>'
, ' </body>'
, '</html>'
].join('\n');
].join(eol);
/**
* EJS index template.
* JSHTML layout template.
*/
var ejsIndex = [
'<h1><%= title %></h1>'
, '<p>Welcome to <%= title %></p>'
].join('\n');
var jshtmlLayout = [
'<!DOCTYPE html>'
, '<html>'
, ' <head>'
, ' <title> @write(title) </title>'
, ' <link rel=\'stylesheet\' href=\'/stylesheets/style.css\' />'
, ' </head>'
, ' <body>'
, ' @write(body)'
, ' </body>'
, '</html>'
].join(eol);
/**
* JSHTML index template.
*/
var jshtmlIndex = [
'<h1>@write(title)</h1>'
, '<p>Welcome to @write(title)</p>'
].join(eol);
/**
* Hogan.js index template.
*/
var hoganIndex = [
'<!DOCTYPE html>'
, '<html>'
, ' <head>'
, ' <title>{{ title }}</title>'
, ' <link rel=\'stylesheet\' href=\'/stylesheets/style.css\' />'
, ' </head>'
, ' <body>'
, ' <h1>{{ title }}</h1>'
, ' <p>Welcome to {{ title }}</p>'
, ' </body>'
, '</html>'
].join(eol);
/**
* Default css template.
@@ -110,7 +165,11 @@ var css = [
, ' padding: 50px;'
, ' font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;'
, '}'
].join('\n');
, ''
, 'a {'
, ' color: #00B7FF;'
, '}'
].join(eol);
/**
* Default less template.
@@ -121,43 +180,23 @@ var less = [
, ' padding: 50px;'
, ' font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;'
, '}'
].join('\n');
, ''
, 'a {'
, ' color: #00B7FF;'
, '}'
].join(eol);
/**
* Default sass template.
* Default stylus template.
*/
var sass = [
var stylus = [
'body'
, ' :padding 50px'
, ' :font 14px "Lucida Grande", Helvetica, Arial, sans-serif'
].join('\n');
/**
* App test template.
*/
var appTest = [
""
, "// Run $ expresso"
, ""
, "/**"
, " * Module dependencies."
, " */"
, ""
, "var app = require('../app');"
, "",
, "module.exports = {"
, " 'GET /': function(assert){"
, " assert.response(app,"
, " { url: '/' },"
, " { status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8' }},"
, " function(res){"
, " assert.includes(res.body, '<title>Express</title>');"
, " });"
, " }"
, "};"
].join('\n');
, ' padding: 50px'
, ' font: 14px "Lucida Grande", Helvetica, Arial, sans-serif'
, 'a'
, ' color: #00B7FF'
].join(eol);
/**
* App template.
@@ -169,96 +208,49 @@ var app = [
, ' * Module dependencies.'
, ' */'
, ''
, 'var express = require(\'express\');'
, 'var express = require(\'express\')'
, ' , routes = require(\'./routes\')'
, ' , user = require(\'./routes/user\')'
, ' , http = require(\'http\')'
, ' , path = require(\'path\');'
, ''
, 'var app = module.exports = express.createServer();'
, 'var app = express();'
, ''
, '// Configuration'
, '// all environments'
, 'app.set(\'port\', process.env.PORT || 3000);'
, 'app.set(\'views\', __dirname + \'/views\');'
, 'app.set(\'view engine\', \':TEMPLATE\');'
, 'app.use(express.favicon());'
, 'app.use(express.logger(\'dev\'));'
, 'app.use(express.bodyParser());'
, 'app.use(express.methodOverride());{sess}'
, 'app.use(app.router);{css}'
, 'app.use(express.static(path.join(__dirname, \'public\')));'
, ''
, 'app.configure(function(){'
, ' app.set(\'views\', __dirname + \'/views\');'
, ' app.set(\'view engine\', \':TEMPLATE\');'
, ' app.use(express.bodyDecoder());'
, ' app.use(express.methodOverride());:SESS:CSS'
, ' app.use(app.router);'
, ' app.use(express.staticProvider(__dirname + \'/public\'));'
, '});'
, ''
, 'app.configure(\'development\', function(){'
, ' app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); '
, '});'
, ''
, 'app.configure(\'production\', function(){'
, ' app.use(express.errorHandler()); '
, '});'
, ''
, '// Routes'
, ''
, 'app.get(\'/\', function(req, res){'
, ' res.render(\'index\', {'
, ' locals: {'
, ' title: \'Express\''
, ' }'
, ' });'
, '});'
, ''
, '// Only listen on $ node app.js'
, ''
, 'if (!module.parent) {'
, ' app.listen(3000);'
, ' console.log("Express server listening on port %d", app.address().port)'
, '// development only'
, 'if (\'development\' == app.get(\'env\')) {'
, ' app.use(express.errorHandler());'
, '}'
, ''
].join('\n');
// Parse arguments
var args = process.argv.slice(2)
, path = '.';
while (args.length) {
var arg = args.shift();
switch (arg) {
case '-h':
case '--help':
abort(usage);
break;
case '-v':
case '--version':
abort(version);
break;
case '-s':
case '--session':
case '--sessions':
sessions = true;
break;
case '-c':
case '--css':
args.length
? (cssEngine = args.shift())
: abort('--css requires an argument');
break;
case '-t':
case '--template':
args.length
? (templateEngine = args.shift())
: abort('--template requires an argument');
break;
default:
path = arg;
}
}
, 'app.get(\'/\', routes.index);'
, 'app.get(\'/users\', user.list);'
, ''
, 'http.createServer(app).listen(app.get(\'port\'), function(){'
, ' console.log(\'Express server listening on port \' + app.get(\'port\'));'
, '});'
, ''
].join(eol);
// Generate application
(function createApplication(path) {
emptyDirectory(path, function(empty){
if (empty) {
if (empty || program.force) {
createApplicationAt(path);
} else {
confirm('destination is not empty, continue? ', function(ok){
program.confirm('destination is not empty, continue? ', function(ok){
if (ok) {
stdin.destroy();
process.stdin.destroy();
createApplicationAt(path);
} else {
abort('aborting');
@@ -275,70 +267,105 @@ while (args.length) {
*/
function createApplicationAt(path) {
console.log();
process.on('exit', function(){
console.log();
console.log(' install dependencies:');
console.log(' $ cd %s && npm install', path);
console.log();
console.log(' run the app:');
console.log(' $ node app');
console.log();
});
mkdir(path, function(){
mkdir(path + '/pids');
mkdir(path + '/logs');
mkdir(path + '/public');
mkdir(path + '/public/javascripts');
mkdir(path + '/public/images');
mkdir(path + '/public/stylesheets', function(){
switch (cssEngine) {
switch (program.css) {
case 'less':
write(path + '/public/stylesheets/style.less', less);
break;
case 'sass':
write(path + '/public/stylesheets/style.sass', sass);
case 'stylus':
write(path + '/public/stylesheets/style.styl', stylus);
break;
default:
write(path + '/public/stylesheets/style.css', css);
}
});
mkdir(path + '/views/partials', function(){
switch (templateEngine) {
mkdir(path + '/routes', function(){
write(path + '/routes/index.js', index);
write(path + '/routes/user.js', users);
});
mkdir(path + '/views', function(){
switch (program.template) {
case 'ejs':
write(path + '/views/layout.ejs', ejsLayout);
write(path + '/views/index.ejs', ejsIndex);
break;
case 'jade':
write(path + '/views/layout.jade', jadeLayout);
write(path + '/views/index.jade', jadeIndex);
break;
case 'jshtml':
write(path + '/views/layout.jshtml', jshtmlLayout);
write(path + '/views/index.jshtml', jshtmlIndex);
break;
case 'hjs':
write(path + '/views/index.hjs', hoganIndex);
break;
}
});
mkdir(path + '/test', function(){
write(path + '/test/app.test.js', appTest);
});
// CSS Engine support
switch (cssEngine) {
case 'sass':
switch (program.css) {
case 'less':
app = app.replace(':CSS', '\n app.use(express.compiler({ src: __dirname + \'/public\', enable: [\'' + cssEngine + '\'] }));');
app = app.replace('{css}', eol + ' app.use(require(\'less-middleware\')({ src: __dirname + \'/public\' }));');
break;
case 'stylus':
app = app.replace('{css}', eol + ' app.use(require(\'stylus\').middleware(__dirname + \'/public\'));');
break;
default:
app = app.replace(':CSS', '');
app = app.replace('{css}', '');
}
// Session support
app = app.replace(':SESS', sessions
? '\n app.use(express.cookieDecoder());\n app.use(express.session());'
app = app.replace('{sess}', program.sessions
? eol + ' app.use(express.cookieParser(\'your secret here\'));' + eol + ' app.use(express.session());'
: '');
// Template support
app = app.replace(':TEMPLATE', templateEngine);
app = app.replace(':TEMPLATE', program.template);
write(path + '/app.js', app);
// Suggestions
process.on('exit', function(){
if (cssEngine) {
console.log(' - make sure you have installed %s: \x1b[33m$ npm install %s\x1b[0m'
, cssEngine
, cssEngine);
// package.json
var pkg = {
name: 'application-name'
, version: '0.0.1'
, private: true
, scripts: { start: 'node app.js' }
, dependencies: {
express: version
}
console.log(' - make sure you have installed %s: \x1b[33m$ npm install %s\x1b[0m'
, templateEngine
, templateEngine);
});
}
if (program.template) pkg.dependencies[program.template] = '*';
// CSS Engine support
switch (program.css) {
case 'less':
pkg.dependencies['less-middleware'] = '*';
break;
default:
if (program.css) {
pkg.dependencies[program.css] = '*';
}
}
write(path + '/package.json', JSON.stringify(pkg, null, 2));
write(path + '/app.js', app);
});
}
@@ -351,7 +378,7 @@ function createApplicationAt(path) {
function emptyDirectory(path, fn) {
fs.readdir(path, function(err, files){
if (err && err.errno !== process.ENOENT) throw err;
if (err && 'ENOENT' != err.code) throw err;
fn(!files || !files.length);
});
}
@@ -365,37 +392,7 @@ function emptyDirectory(path, fn) {
function write(path, str) {
fs.writeFile(path, str);
console.log(' \x1b[33mcreate\x1b[0m : ' + path);
}
/**
* Prompt confirmation with the given `msg`.
*
* @param {String} msg
* @param {Function} fn
*/
function confirm(msg, fn) {
prompt(msg, function(val){
fn(/^ *y(es)?/i.test(val));
});
}
/**
* Prompt input with the given `msg` and callback `fn`.
*
* @param {String} msg
* @param {Function} fn
*/
function prompt(msg, fn) {
stdin = stdin || process.openStdin();
sys[msg[msg.length - 1] == ' ' ? 'print' : 'puts'](msg);
stdin.setEncoding('ascii');
stdin.addListener('data', function(data){
fn(data);
stdin.removeListener('data', arguments.callee);
});
console.log(' \x1b[36mcreate\x1b[0m : ' + path);
}
/**
@@ -406,9 +403,9 @@ function prompt(msg, fn) {
*/
function mkdir(path, fn) {
exec('mkdir -p ' + path, function(err){
mkdirp(path, 0755, function(err){
if (err) throw err;
console.log(' \x1b[33mcreate\x1b[0m : ' + path);
console.log(' \033[36mcreate\033[0m : ' + path);
fn && fn();
});
}

25
client.js Normal file
View File

@@ -0,0 +1,25 @@
var http = require('http');
var times = 50;
while (times--) {
var req = http.request({
port: 3000
, method: 'POST'
, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
req.on('response', function(res){
console.log(res.statusCode);
});
var n = 500000;
while (n--) {
req.write('foo=bar&bar=baz&');
}
req.write('foo=bar&bar=baz');
req.end();
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,70 +0,0 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "APPLICATIONS" "" "October 2010" "" ""
.
.SH "NAME"
\fBapplications\fR
.
.P
Learnboost \fIhttp://learnboost\.com\fR is a free online gradebook application, aimed to crush the competition with innovative, realtime, enjoyable features\.
.
.P
\fIhttp://learnboost\.com\fR
.
.P
Storify \fIhttp://storify\.com\fR lets you turn what people post on social media websites into compelling stories\.
.
.P
\fIhttp://storify\.com\fR
.
.P
Pakistan Survey \fIhttp://pakistansurvey\.org/\fR by Development Seed \fIhttp://developmentseed\.org\fR, provides in\-depth agency\-specific analysis from regional experts with data from 1,000 interviews across 120 villages in all seven tribal agencies and mapping of 142 reported drone strikes in FATA through July 2010\.
.
.P
\fIhttp://pakistansurvey\.org\fR
.
.P
Markup\.IO \fIhttp://markup\.io\fR allows you to draw directly on \fIany\fR website, then share with others to share your thoughts\.
.
.P
\fIhttp://markup\.io\fR
.
.P
Scrabb\.ly \fIhttp://scrabb\.ly\fR is a massively multiplayer scrabble game initially created for the Node Knockout \fIhttp://nodeknockout\.com/\fR competition\.
.
.P
\fIhttp://scrabb\.ly\fR
.
.P
ClickDummy \fIhttp://clickdummy\.net/\fR is a rapid mockup prototyping application for designers and dummies\.
.
.P
\fIhttp://clickdummy\.net\fR
.
.P
Node Knockout \fIhttp://nodeknockout\.com\fR organized the first ever node\-specific competition with hundreds of contestants\.
.
.P
\fIhttp://nodeknockout\.com\fR
.
.P
Widescript \fIhttp://widescript\.com\fR is an innovative app that helps you focus and interact with your texts \- on your desktop, your couch or on the go\.
.
.P
\fIhttp://widescript\.com\fR
.
.P
e\-resistable \fIhttp://www\.e\-resistible\.co\.uk/\fR is an online order takeaway system providing an intuitive way to fill your belly from your computer!
.
.P
\fIhttp://www\.e\-resistible\.co\.uk\fR
.
.P
Top Twitter Trends \fIhttp://toptwittertrends\.com\fR utilizes MongoDB, Socket\.IO, jQuery and many other exciting libraries to bring you trending tweets in realtime\.
.
.P
\fIhttp://toptwittertrends\.com\fR
.
.P
The applications shown above are not listed in any specific order\. To have an application added or removed please contact TJ Holowaychuk \fIhttp://github\.com/visionmedia\fR\.

View File

@@ -1,252 +0,0 @@
<html>
<head>
<title>Express - node web framework</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>
#tagline {
margin-left: 75px;
margin-bottom: 30px;
color: rgba(255,255,255,0.7); }
html {
background: #1c1c1c url(images/bg.tile.jpg); }
body {
margin: 0;
padding-bottom: 30px;
font: 14px/1.4 "Helvetica Neue", "Lucida Grande", "Arial";
font-size: 14px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
background: url(images/bg.jpg) 50% 0 no-repeat;
color: #8b8b8b; }
* {
outline: none; }
em {
color: white; }
a img {
border: none !important; }
a {
font-weight: bold;
text-decoration: none;
color: white;
-webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
a:hover {
opacity: 0.8; }
h1, h2, h3, h4 {
margin: 45px 0 0 0;
color: white;
text-shadow: 1px 2px 2px rgba(0,0,0,0.6); }
h3 {
font-size: 18px; }
h4 {
margin-left: 10px;
font-size: 14px;
}
pre {
margin: 20px 10px;
padding: 25px 20px;
background: rgba(0,0,0,0.5);
border: 1px solid #323232;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-border-radius: 5px;
-moz-border-radius: 5px; }
code {
font-family: "Helvetica Neue", "Lucida Grande", "Arial"; }
ul {
margin: 15px 0;
padding: 0 0 0 35px; }
ul li {
margin: 0;
padding: 2px 0;
list-style: square; }
ul li ul {
margin: 0;
padding-left: 12px;
}
.man-name, #Express { display:none; }
.sect {
margin-left: 40px; }
img {
margin-left: 20px;
margin-bottom: 15px;
}
#logo {
display: block;
margin-left: 30%;
margin-bottom: 30px;
width: 194px;
height: 51px;
background: url(images/logo.png) 0 0 no-repeat;
text-indent: -99999px; }
#logo:hover {
opacity: 0.7; }
#logo:active {
opacity: 0.3; }
#ribbon {
position: fixed;
top: 0;
right: 0;
z-index: 2; }
#wrapper {
width: 100%;
min-height: 800px;
background: url(images/top.png) 0 0 repeat-x; }
#container {
margin: 0 auto;
padding-top: 80px;
width: 550px; }
#toc {
position: fixed;
top: 0;
left: 0;
margin: 0 0 0 15px;
padding: 15px;
height: 100%;
background: rgba(0,0,0,0.2);
overflow: auto;
border-right: 1px solid rgba(255,255,255,0.05);
}
#toc li {
padding: 0;
list-style: none;
}
#toc li a {
font-size: 11px;
}
#menu {
margin-left: 65px;
padding: 0;
padding-bottom: 30px; }
#menu li {
display: inline;
list-style: none; }
#menu li a {
display: block;
float: left;
margin: 0 2px;
padding: 3px 15px;
background: rgba(0,0,0,0.2);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-transition-property: opacity, -webkit-transform, color, background-color, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
#menu li a:hover,
#menu li a.active {
background: rgba(0,0,0,0.5); }
#menu li a:active {
background: rgba(0,0,0,0.1);
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4); }
</style>
<script>
$(function(){
$('.section').hide();
$('.toggle, a.section-title').toggle(function(){
$(this).siblings('ul').fadeIn(300);
return false;
}, function(){
$(this).siblings('ul').fadeOut(300);
return false;
});
});
</script>
</head>
<body>
<a href='http://github.com/visionmedia/express'>
<img alt='Fork me on GitHub' id='ribbon' src='http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png' />
</a>
<div id="wrapper">
<div id="container">
<a href='http://github.com/visionmedia/express' id='logo'>Express</a>
<p id="tagline">
High performance, high class web development for
<a href="http://nodejs.org">Node.js</a>
</p>
<ul id="menu">
<li><a href="index.html">Home</a></li>
<li><a href="guide.html">Guide</a></li>
<li><a href="contrib.html">Contributing</a></li>
<li><a href="applications.html">Applications</a></li>
</ul>
<div class='mp'>
<h2 id="Express">Express</h2>
<p class="man-name">
<code>applications</code>
</p>
<br />
<p><a href="http://learnboost.com">Learnboost</a> is a free online gradebook application, aimed to crush the competition with innovative, realtime, enjoyable features.</p>
<p><a href="http://learnboost.com"><img src="images/apps/learnboost.png" alt="LearnBoost" /></a></p>
<p><a href="http://storify.com">Storify</a> lets you turn what people post on social media websites into compelling stories.</p>
<p><a href="http://storify.com"><img src="images/apps/storify.png" alt="Storify" /></a></p>
<p><a href="http://pakistansurvey.org/">Pakistan Survey</a> by <a href="http://developmentseed.org">Development Seed</a>, provides in-depth agency-specific analysis from regional experts with data from 1,000 interviews across 120 villages in all seven tribal agencies and mapping of 142 reported drone strikes in FATA through July 2010.</p>
<p><a href="http://pakistansurvey.org"><img src="images/apps/developmentseed.png" alt="Pakistan Survey" /></a></p>
<p><a href="http://markup.io">Markup.IO</a> allows you to draw directly on <em>any</em> website, then share with others to share your thoughts.</p>
<p><a href="http://markup.io"><img src="images/apps/markupio.png" alt="Markup.IO" /></a></p>
<p><a href="http://scrabb.ly">Scrabb.ly</a> is a massively multiplayer scrabble game initially created for the <a href="http://nodeknockout.com/">Node Knockout</a> competition.</p>
<p><a href="http://scrabb.ly"><img src="images/apps/scrabbly.png" alt="Online Realtime Scrabble" /></a></p>
<p><a href="http://clickdummy.net/">ClickDummy</a> is a rapid mockup prototyping application for designers and dummies.</p>
<p><a href="http://clickdummy.net"><img src="images/apps/clickdummy.png" alt="Mockup Prototying" /></a></p>
<p><a href="http://nodeknockout.com">Node Knockout</a> organized the first ever node-specific competition with hundreds of contestants.</p>
<p><a href="http://nodeknockout.com"><img src="images/apps/nodeko.png" alt="Node Knockout Competition Express" /></a></p>
<p><a href="http://widescript.com">Widescript</a> is an innovative app that helps you focus and interact with your texts - on your desktop, your couch or on the go.</p>
<p><a href="http://widescript.com"><img src="images/apps/widescript.png" alt="Widescript" /></a></p>
<p><a href="http://www.e-resistible.co.uk/">e-resistable</a> is an online order takeaway system providing an intuitive way to fill your belly from your computer!</p>
<p><a href="http://www.e-resistible.co.uk"><img src="images/apps/e-resistable.png" alt="Online Takeaway" /></a></p>
<p><a href="http://toptwittertrends.com">Top Twitter Trends</a> utilizes MongoDB, Socket.IO, jQuery and many other exciting libraries to bring you trending tweets in realtime.</p>
<p><a href="http://toptwittertrends.com"><img src="images/apps/toptwittertrends.png" alt="Twitter Trends" /></a></p>
<br />
<p>The applications shown above are not listed in any specific order. To have an application added or removed please contact <a href="http://github.com/visionmedia">TJ Holowaychuk</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,47 +0,0 @@
<br />
[Learnboost](http://learnboost.com) is a free online gradebook application, aimed to crush the competition with innovative, realtime, enjoyable features.
[![LearnBoost](images/apps/learnboost.png)](http://learnboost.com)
[Storify](http://storify.com) lets you turn what people post on social media websites into compelling stories.
[![Storify](images/apps/storify.png)](http://storify.com)
[Pakistan Survey](http://pakistansurvey.org/) by [Development Seed](http://developmentseed.org), provides in-depth agency-specific analysis from regional experts with data from 1,000 interviews across 120 villages in all seven tribal agencies and mapping of 142 reported drone strikes in FATA through July 2010.
[![Pakistan Survey](images/apps/developmentseed.png)](http://pakistansurvey.org)
[Markup.IO](http://markup.io) allows you to draw directly on _any_ website, then share with others to share your thoughts.
[![Markup.IO](images/apps/markupio.png)](http://markup.io)
[Scrabb.ly](http://scrabb.ly) is a massively multiplayer scrabble game initially created for the [Node Knockout](http://nodeknockout.com/) competition.
[![Online Realtime Scrabble](images/apps/scrabbly.png)](http://scrabb.ly)
[ClickDummy](http://clickdummy.net/) is a rapid mockup prototyping application for designers and dummies.
[![Mockup Prototying](images/apps/clickdummy.png)](http://clickdummy.net)
[Node Knockout](http://nodeknockout.com) organized the first ever node-specific competition with hundreds of contestants.
[![Node Knockout Competition Express](images/apps/nodeko.png)](http://nodeknockout.com)
[Widescript](http://widescript.com) is an innovative app that helps you focus and interact with your texts - on your desktop, your couch or on the go.
[![Widescript](images/apps/widescript.png)](http://widescript.com)
[e-resistable](http://www.e-resistible.co.uk/) is an online order takeaway system providing an intuitive way to fill your belly from your computer!
[![Online Takeaway](images/apps/e-resistable.png)](http://www.e-resistible.co.uk)
[Top Twitter Trends](http://toptwittertrends.com) utilizes MongoDB, Socket.IO, jQuery and many other exciting libraries to bring you trending tweets in realtime.
[![Twitter Trends](images/apps/toptwittertrends.png)](http://toptwittertrends.com)
<br />
The applications shown above are not listed in any specific order. To have an application added or removed please contact [TJ Holowaychuk](http://github.com/visionmedia).

View File

@@ -1,82 +0,0 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "CONTRIB" "" "October 2010" "" ""
.
.SH "NAME"
\fBcontrib\fR
.
.SS "Development Dependencies"
Express development dependencies are stored within the \fI\./support\fR directory\. To update them execute:
.
.IP "" 4
.
.nf
$ git submodule update \-\-init
.
.fi
.
.IP "" 0
.
.SS "Running Tests"
Express uses the Expresso \fIhttp://github\.com/visionmedia/expresso\fR TDD framework to write and run elegant test suites extremely fast\. To run all test suites simply execute:
.
.IP "" 4
.
.nf
$ make test
.
.fi
.
.IP "" 0
.
.P
To target specific suites we may specify the files via:
.
.IP "" 4
.
.nf
$ make test TESTS=test/view\.test\.js
.
.fi
.
.IP "" 0
.
.P
To check test coverage run:
.
.IP "" 4
.
.nf
$ make test\-cov
.
.fi
.
.IP "" 0
.
.SS "Contributions"
To accept a contribution, you should follow these guidelines:
.
.IP "\(bu" 4
All tests \fImust\fR pass
.
.IP "\(bu" 4
Your alterations or additions \fImust\fR include tests
.
.IP "\(bu" 4
Your commit(s) should be \fIfocused\fR, do not commit once for several changes
.
.IP "\(bu" 4
Do \fInot\fR alter release information such as the \fIversion\fR, or \fIHistory\.md\fR
.
.IP "\(bu" 4
Indents are \fI2\fR spaces\.
.
.IP "" 0
.
.SS "Documentation"
To contribute documentation edit the markdown files in \fI\./docs\fR, however do \fInot\fR run \fImake docs\fR, as they will be re\-built and published with each release\.

View File

@@ -1,247 +0,0 @@
<html>
<head>
<title>Express - node web framework</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>
#tagline {
margin-left: 75px;
margin-bottom: 30px;
color: rgba(255,255,255,0.7); }
html {
background: #1c1c1c url(images/bg.tile.jpg); }
body {
margin: 0;
padding-bottom: 30px;
font: 14px/1.4 "Helvetica Neue", "Lucida Grande", "Arial";
font-size: 14px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
background: url(images/bg.jpg) 50% 0 no-repeat;
color: #8b8b8b; }
* {
outline: none; }
em {
color: white; }
a img {
border: none !important; }
a {
font-weight: bold;
text-decoration: none;
color: white;
-webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
a:hover {
opacity: 0.8; }
h1, h2, h3, h4 {
margin: 45px 0 0 0;
color: white;
text-shadow: 1px 2px 2px rgba(0,0,0,0.6); }
h3 {
font-size: 18px; }
h4 {
margin-left: 10px;
font-size: 14px;
}
pre {
margin: 20px 10px;
padding: 25px 20px;
background: rgba(0,0,0,0.5);
border: 1px solid #323232;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-border-radius: 5px;
-moz-border-radius: 5px; }
code {
font-family: "Helvetica Neue", "Lucida Grande", "Arial"; }
ul {
margin: 15px 0;
padding: 0 0 0 35px; }
ul li {
margin: 0;
padding: 2px 0;
list-style: square; }
ul li ul {
margin: 0;
padding-left: 12px;
}
.man-name, #Express { display:none; }
.sect {
margin-left: 40px; }
img {
margin-left: 20px;
margin-bottom: 15px;
}
#logo {
display: block;
margin-left: 30%;
margin-bottom: 30px;
width: 194px;
height: 51px;
background: url(images/logo.png) 0 0 no-repeat;
text-indent: -99999px; }
#logo:hover {
opacity: 0.7; }
#logo:active {
opacity: 0.3; }
#ribbon {
position: fixed;
top: 0;
right: 0;
z-index: 2; }
#wrapper {
width: 100%;
min-height: 800px;
background: url(images/top.png) 0 0 repeat-x; }
#container {
margin: 0 auto;
padding-top: 80px;
width: 550px; }
#toc {
position: fixed;
top: 0;
left: 0;
margin: 0 0 0 15px;
padding: 15px;
height: 100%;
background: rgba(0,0,0,0.2);
overflow: auto;
border-right: 1px solid rgba(255,255,255,0.05);
}
#toc li {
padding: 0;
list-style: none;
}
#toc li a {
font-size: 11px;
}
#menu {
margin-left: 65px;
padding: 0;
padding-bottom: 30px; }
#menu li {
display: inline;
list-style: none; }
#menu li a {
display: block;
float: left;
margin: 0 2px;
padding: 3px 15px;
background: rgba(0,0,0,0.2);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-transition-property: opacity, -webkit-transform, color, background-color, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
#menu li a:hover,
#menu li a.active {
background: rgba(0,0,0,0.5); }
#menu li a:active {
background: rgba(0,0,0,0.1);
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4); }
</style>
<script>
$(function(){
$('.section').hide();
$('.toggle, a.section-title').toggle(function(){
$(this).siblings('ul').fadeIn(300);
return false;
}, function(){
$(this).siblings('ul').fadeOut(300);
return false;
});
});
</script>
</head>
<body>
<a href='http://github.com/visionmedia/express'>
<img alt='Fork me on GitHub' id='ribbon' src='http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png' />
</a>
<div id="wrapper">
<div id="container">
<a href='http://github.com/visionmedia/express' id='logo'>Express</a>
<p id="tagline">
High performance, high class web development for
<a href="http://nodejs.org">Node.js</a>
</p>
<ul id="menu">
<li><a href="index.html">Home</a></li>
<li><a href="guide.html">Guide</a></li>
<li><a href="contrib.html">Contributing</a></li>
<li><a href="applications.html">Applications</a></li>
</ul>
<div class='mp'>
<h2 id="Express">Express</h2>
<p class="man-name">
<code>contrib</code>
</p>
<h3 id="Development-Dependencies">Development Dependencies</h3>
<p>Express development dependencies are stored within the <em>./support</em> directory. To
update them execute:</p>
<pre><code>$ git submodule update --init
</code></pre>
<h3 id="Running-Tests">Running Tests</h3>
<p>Express uses the <a href="http://github.com/visionmedia/expresso">Expresso</a> TDD
framework to write and run elegant test suites extremely fast. To run all test suites
simply execute:</p>
<pre><code>$ make test
</code></pre>
<p>To target specific suites we may specify the files via:</p>
<pre><code>$ make test TESTS=test/view.test.js
</code></pre>
<p>To check test coverage run:</p>
<pre><code>$ make test-cov
</code></pre>
<h3 id="Contributions">Contributions</h3>
<p>To accept a contribution, you should follow these guidelines:</p>
<ul>
<li>All tests <em>must</em> pass</li>
<li>Your alterations or additions <em>must</em> include tests</li>
<li>Your commit(s) should be <em>focused</em>, do not commit once for several changes</li>
<li>Do <em>not</em> alter release information such as the <em>version</em>, or <em>History.md</em></li>
<li>Indents are <em>2</em> spaces.</li>
</ul>
<h3 id="Documentation">Documentation</h3>
<p>To contribute documentation edit the markdown files in <em>./docs</em>, however
do <em>not</em> run <em>make docs</em>, as they will be re-built and published with each release.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,38 +0,0 @@
### Development Dependencies
Express development dependencies are stored within the _./support_ directory. To
update them execute:
$ git submodule update --init
### Running Tests
Express uses the [Expresso](http://github.com/visionmedia/expresso) TDD
framework to write and run elegant test suites extremely fast. To run all test suites
simply execute:
$ make test
To target specific suites we may specify the files via:
$ make test TESTS=test/view.test.js
To check test coverage run:
$ make test-cov
### Contributions
To accept a contribution, you should follow these guidelines:
* All tests _must_ pass
* Your alterations or additions _must_ include tests
* Your commit(s) should be _focused_, do not commit once for several changes
* Do _not_ alter release information such as the _version_, or _History.md_
* Indents are _2_ spaces.
### Documentation
To contribute documentation edit the markdown files in _./docs_, however
do _not_ run _make docs_, as they will be re-built and published with each release.

View File

@@ -1,30 +0,0 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "EXECUTABLE" "" "October 2010" "" ""
.
.SH "NAME"
\fBexecutable\fR
.
.SH "Synopsis"
.
.nf
express [\-h|\-\-help] [\-v|\-\-version] [\-c|\-css ENGINE] [PATH]
.
.fi
.
.SH "Description"
The \fBexpress\fR executable generates apps at the given \fBPATH\fR or the current working directory\. Although Express is not bound to a specific application structure, this executable creates a maintainable base app\.
.
.SH "Options"
.
.nf
\-s, \-\-sessions Add session support
\-c, \-\-css ENGINE Add css ENGINE support (less|sass)\. Defaults to plain css
\-v, \-\-version Output framework version
\-h, \-\-help Display help information
.
.fi

View File

@@ -1,221 +0,0 @@
<html>
<head>
<title>Express - node web framework</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>
#tagline {
margin-left: 75px;
margin-bottom: 30px;
color: rgba(255,255,255,0.7); }
html {
background: #1c1c1c url(images/bg.tile.jpg); }
body {
margin: 0;
padding-bottom: 30px;
font: 14px/1.4 "Helvetica Neue", "Lucida Grande", "Arial";
font-size: 14px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
background: url(images/bg.jpg) 50% 0 no-repeat;
color: #8b8b8b; }
* {
outline: none; }
em {
color: white; }
a img {
border: none !important; }
a {
font-weight: bold;
text-decoration: none;
color: white;
-webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
a:hover {
opacity: 0.8; }
h1, h2, h3, h4 {
margin: 45px 0 0 0;
color: white;
text-shadow: 1px 2px 2px rgba(0,0,0,0.6); }
h3 {
font-size: 18px; }
h4 {
margin-left: 10px;
font-size: 14px;
}
pre {
margin: 20px 10px;
padding: 25px 20px;
background: rgba(0,0,0,0.5);
border: 1px solid #323232;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-border-radius: 5px;
-moz-border-radius: 5px; }
code {
font-family: "Helvetica Neue", "Lucida Grande", "Arial"; }
ul {
margin: 15px 0;
padding: 0 0 0 35px; }
ul li {
margin: 0;
padding: 2px 0;
list-style: square; }
ul li ul {
margin: 0;
padding-left: 12px;
}
.man-name, #Express { display:none; }
.sect {
margin-left: 40px; }
img {
margin-left: 20px;
margin-bottom: 15px;
}
#logo {
display: block;
margin-left: 30%;
margin-bottom: 30px;
width: 194px;
height: 51px;
background: url(images/logo.png) 0 0 no-repeat;
text-indent: -99999px; }
#logo:hover {
opacity: 0.7; }
#logo:active {
opacity: 0.3; }
#ribbon {
position: fixed;
top: 0;
right: 0;
z-index: 2; }
#wrapper {
width: 100%;
min-height: 800px;
background: url(images/top.png) 0 0 repeat-x; }
#container {
margin: 0 auto;
padding-top: 80px;
width: 550px; }
#toc {
position: fixed;
top: 0;
left: 0;
margin: 0 0 0 15px;
padding: 15px;
height: 100%;
background: rgba(0,0,0,0.2);
overflow: auto;
border-right: 1px solid rgba(255,255,255,0.05);
}
#toc li {
padding: 0;
list-style: none;
}
#toc li a {
font-size: 11px;
}
#menu {
margin-left: 65px;
padding: 0;
padding-bottom: 30px; }
#menu li {
display: inline;
list-style: none; }
#menu li a {
display: block;
float: left;
margin: 0 2px;
padding: 3px 15px;
background: rgba(0,0,0,0.2);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-transition-property: opacity, -webkit-transform, color, background-color, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
#menu li a:hover,
#menu li a.active {
background: rgba(0,0,0,0.5); }
#menu li a:active {
background: rgba(0,0,0,0.1);
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4); }
</style>
<script>
$(function(){
$('.section').hide();
$('.toggle, a.section-title').toggle(function(){
$(this).siblings('ul').fadeIn(300);
return false;
}, function(){
$(this).siblings('ul').fadeOut(300);
return false;
});
});
</script>
</head>
<body>
<a href='http://github.com/visionmedia/express'>
<img alt='Fork me on GitHub' id='ribbon' src='http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png' />
</a>
<div id="wrapper">
<div id="container">
<a href='http://github.com/visionmedia/express' id='logo'>Express</a>
<p id="tagline">
High performance, high class web development for
<a href="http://nodejs.org">Node.js</a>
</p>
<ul id="menu">
<li><a href="index.html">Home</a></li>
<li><a href="guide.html">Guide</a></li>
<li><a href="contrib.html">Contributing</a></li>
<li><a href="applications.html">Applications</a></li>
</ul>
<div class='mp'>
<h2 id="Express">Express</h2>
<p class="man-name">
<code>executable</code>
</p>
<h2 id="Synopsis">Synopsis</h2>
<pre><code>express [-h|--help] [-v|--version] [-c|-css ENGINE] [PATH]
</code></pre>
<h2 id="Description">Description</h2>
<p>The <code>express</code> executable generates apps at the given <strong>PATH</strong> or the
current working directory. Although Express is not bound to a specific
application structure, this executable creates a maintainable base app.</p>
<h2 id="Options">Options</h2>
<pre><code>-s, --sessions Add session support
-c, --css ENGINE Add css ENGINE support (less|sass). Defaults to plain css
-v, --version Output framework version
-h, --help Display help information
</code></pre>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,18 +0,0 @@
## Synopsis
express [-h|--help] [-v|--version] [-c|-css ENGINE] [PATH]
## Description
The `express` executable generates apps at the given **PATH** or the
current working directory. Although Express is not bound to a specific
application structure, this executable creates a maintainable base app.
## Options
-s, --sessions Add session support
-c, --css ENGINE Add css ENGINE support (less|sass). Defaults to plain css
-v, --version Output framework version
-h, --help Display help information

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 B

View File

@@ -1,106 +0,0 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "INDEX" "" "October 2010" "" ""
.
.SH "NAME"
\fBindex\fR
.
.IP "" 4
.
.nf
var app = express\.createServer();
app\.get(\'/\', function(req, res){
res\.send(\'Hello World\');
});
app\.listen(3000);
.
.fi
.
.IP "" 0
.
.SH "Features"
.
.IP "\(bu" 4
Robust routing
.
.IP "\(bu" 4
Redirection helpers
.
.IP "\(bu" 4
Dynamic view helpers
.
.IP "\(bu" 4
Application level view options
.
.IP "\(bu" 4
Content negotiation
.
.IP "\(bu" 4
Focus on high performance
.
.IP "\(bu" 4
View rendering and partials support
.
.IP "\(bu" 4
Environment based configuration
.
.IP "\(bu" 4
Session based flash notifications
.
.IP "\(bu" 4
Built on Connect \fIhttp://github\.com/senchalabs/connect\fR
.
.IP "\(bu" 4
Executable \fIexecutable\.html\fR for generating applications quickly
.
.IP "\(bu" 4
High test coverage
.
.IP "" 0
.
.SH "Contributors"
The following are the major contributors of Express (in no specific order)\.
.
.IP "\(bu" 4
TJ Holowaychuk (visionmedia \fIhttp://github\.com/visionmedia\fR)
.
.IP "\(bu" 4
Ciaran Jessup (ciaranj \fIhttp://github\.com/ciaranj\fR)
.
.IP "\(bu" 4
Aaron Heckmann (aheckmann \fIhttp://github\.com/aheckmann\fR)
.
.IP "\(bu" 4
Guillermo Rauch (guille \fIhttp://github\.com/guille\fR)
.
.IP "" 0
.
.SH "More Information"
.
.IP "\(bu" 4
Google Group \fIhttp://groups\.google\.com/group/express\-js\fR for discussion
.
.IP "\(bu" 4
Follow tjholowaychuk \fIhttp://twitter\.com/tjholowaychuk\fR on twitter for updates
.
.IP "\(bu" 4
Annotated source documentation \fIapi\.html\fR
.
.IP "\(bu" 4
View the Connect \fIhttp://github\.com/senchalabs/connect\fR repo for middleware usage
.
.IP "\(bu" 4
View the Connect Wiki \fIhttp://wiki\.github\.com/senchalabs/connect/\fR for contrib middleware
.
.IP "\(bu" 4
View the examples \fIhttp://github\.com/visionmedia/express/tree/master/examples/\fR
.
.IP "\(bu" 4
View the source \fIhttp://github\.com/visionmedia/express\fR
.
.IP "" 0

View File

@@ -1,254 +0,0 @@
<html>
<head>
<title>Express - node web framework</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>
#tagline {
margin-left: 75px;
margin-bottom: 30px;
color: rgba(255,255,255,0.7); }
html {
background: #1c1c1c url(images/bg.tile.jpg); }
body {
margin: 0;
padding-bottom: 30px;
font: 14px/1.4 "Helvetica Neue", "Lucida Grande", "Arial";
font-size: 14px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
background: url(images/bg.jpg) 50% 0 no-repeat;
color: #8b8b8b; }
* {
outline: none; }
em {
color: white; }
a img {
border: none !important; }
a {
font-weight: bold;
text-decoration: none;
color: white;
-webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
a:hover {
opacity: 0.8; }
h1, h2, h3, h4 {
margin: 45px 0 0 0;
color: white;
text-shadow: 1px 2px 2px rgba(0,0,0,0.6); }
h3 {
font-size: 18px; }
h4 {
margin-left: 10px;
font-size: 14px;
}
pre {
margin: 20px 10px;
padding: 25px 20px;
background: rgba(0,0,0,0.5);
border: 1px solid #323232;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-border-radius: 5px;
-moz-border-radius: 5px; }
code {
font-family: "Helvetica Neue", "Lucida Grande", "Arial"; }
ul {
margin: 15px 0;
padding: 0 0 0 35px; }
ul li {
margin: 0;
padding: 2px 0;
list-style: square; }
ul li ul {
margin: 0;
padding-left: 12px;
}
.man-name, #Express { display:none; }
.sect {
margin-left: 40px; }
img {
margin-left: 20px;
margin-bottom: 15px;
}
#logo {
display: block;
margin-left: 30%;
margin-bottom: 30px;
width: 194px;
height: 51px;
background: url(images/logo.png) 0 0 no-repeat;
text-indent: -99999px; }
#logo:hover {
opacity: 0.7; }
#logo:active {
opacity: 0.3; }
#ribbon {
position: fixed;
top: 0;
right: 0;
z-index: 2; }
#wrapper {
width: 100%;
min-height: 800px;
background: url(images/top.png) 0 0 repeat-x; }
#container {
margin: 0 auto;
padding-top: 80px;
width: 550px; }
#toc {
position: fixed;
top: 0;
left: 0;
margin: 0 0 0 15px;
padding: 15px;
height: 100%;
background: rgba(0,0,0,0.2);
overflow: auto;
border-right: 1px solid rgba(255,255,255,0.05);
}
#toc li {
padding: 0;
list-style: none;
}
#toc li a {
font-size: 11px;
}
#menu {
margin-left: 65px;
padding: 0;
padding-bottom: 30px; }
#menu li {
display: inline;
list-style: none; }
#menu li a {
display: block;
float: left;
margin: 0 2px;
padding: 3px 15px;
background: rgba(0,0,0,0.2);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-transition-property: opacity, -webkit-transform, color, background-color, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
#menu li a:hover,
#menu li a.active {
background: rgba(0,0,0,0.5); }
#menu li a:active {
background: rgba(0,0,0,0.1);
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4); }
</style>
<script>
$(function(){
$('.section').hide();
$('.toggle, a.section-title').toggle(function(){
$(this).siblings('ul').fadeIn(300);
return false;
}, function(){
$(this).siblings('ul').fadeOut(300);
return false;
});
});
</script>
</head>
<body>
<a href='http://github.com/visionmedia/express'>
<img alt='Fork me on GitHub' id='ribbon' src='http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png' />
</a>
<div id="wrapper">
<div id="container">
<a href='http://github.com/visionmedia/express' id='logo'>Express</a>
<p id="tagline">
High performance, high class web development for
<a href="http://nodejs.org">Node.js</a>
</p>
<ul id="menu">
<li><a href="index.html">Home</a></li>
<li><a href="guide.html">Guide</a></li>
<li><a href="contrib.html">Contributing</a></li>
<li><a href="applications.html">Applications</a></li>
</ul>
<div class='mp'>
<h2 id="Express">Express</h2>
<p class="man-name">
<code>index</code>
</p>
<pre><code>var app = express.createServer();
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
</code></pre>
<h2 id="Features">Features</h2>
<ul>
<li>Robust routing</li>
<li>Redirection helpers</li>
<li>Dynamic view helpers</li>
<li>Application level view options</li>
<li>Content negotiation</li>
<li>Focus on high performance</li>
<li>View rendering and partials support</li>
<li>Environment based configuration</li>
<li>Session based flash notifications</li>
<li>Built on <a href="http://github.com/senchalabs/connect">Connect</a></li>
<li><a href="executable.html">Executable</a> for generating applications quickly</li>
<li>High test coverage</li>
</ul>
<h2 id="Contributors">Contributors</h2>
<p>The following are the major contributors of Express (in no specific order).</p>
<ul>
<li>TJ Holowaychuk (<a href="http://github.com/visionmedia">visionmedia</a>)</li>
<li>Ciaran Jessup (<a href="http://github.com/ciaranj">ciaranj</a>)</li>
<li>Aaron Heckmann (<a href="http://github.com/aheckmann">aheckmann</a>)</li>
<li>Guillermo Rauch (<a href="http://github.com/guille">guille</a>)</li>
</ul>
<h2 id="More-Information">More Information</h2>
<ul>
<li><a href="http://groups.google.com/group/express-js">Google Group</a> for discussion</li>
<li>Follow <a href="http://twitter.com/tjholowaychuk">tjholowaychuk</a> on twitter for updates</li>
<li>Annotated source <a href="api.html">documentation</a></li>
<li>View the <a href="http://github.com/senchalabs/connect">Connect</a> repo for middleware usage</li>
<li>View the <a href="http://wiki.github.com/senchalabs/connect/">Connect Wiki</a> for contrib middleware</li>
<li>View the <a href="http://github.com/visionmedia/express/tree/master/examples/">examples</a></li>
<li>View the <a href="http://github.com/visionmedia/express">source</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,42 +0,0 @@
var app = express.createServer();
app.get('/', function(req, res){
res.send('Hello World');
});
app.listen(3000);
## Features
* Robust routing
* Redirection helpers
* Dynamic view helpers
* Application level view options
* Content negotiation
* Focus on high performance
* View rendering and partials support
* Environment based configuration
* Session based flash notifications
* Built on [Connect](http://github.com/senchalabs/connect)
* [Executable](executable.html) for generating applications quickly
* High test coverage
## Contributors
The following are the major contributors of Express (in no specific order).
* TJ Holowaychuk ([visionmedia](http://github.com/visionmedia))
* Ciaran Jessup ([ciaranj](http://github.com/ciaranj))
* Aaron Heckmann ([aheckmann](http://github.com/aheckmann))
* Guillermo Rauch ([guille](http://github.com/guille))
## More Information
* [Google Group](http://groups.google.com/group/express-js) for discussion
* Follow [tjholowaychuk](http://twitter.com/tjholowaychuk) on twitter for updates
* Annotated source [documentation](api.html)
* View the [Connect](http://github.com/senchalabs/connect) repo for middleware usage
* View the [Connect Wiki](http://wiki.github.com/senchalabs/connect/) for contrib middleware
* View the [examples](http://github.com/visionmedia/express/tree/master/examples/)
* View the [source](http://github.com/visionmedia/express)

View File

@@ -1,4 +0,0 @@
</div>
</div>
</body>
</html>

View File

@@ -1,192 +0,0 @@
<html>
<head>
<title>Express - node web framework</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>
#tagline {
margin-left: 75px;
margin-bottom: 30px;
color: rgba(255,255,255,0.7); }
html {
background: #1c1c1c url(images/bg.tile.jpg); }
body {
margin: 0;
padding-bottom: 30px;
font: 14px/1.4 "Helvetica Neue", "Lucida Grande", "Arial";
font-size: 14px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
background: url(images/bg.jpg) 50% 0 no-repeat;
color: #8b8b8b; }
* {
outline: none; }
em {
color: white; }
a img {
border: none !important; }
a {
font-weight: bold;
text-decoration: none;
color: white;
-webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
a:hover {
opacity: 0.8; }
h1, h2, h3, h4 {
margin: 45px 0 0 0;
color: white;
text-shadow: 1px 2px 2px rgba(0,0,0,0.6); }
h3 {
font-size: 18px; }
h4 {
margin-left: 10px;
font-size: 14px;
}
pre {
margin: 20px 10px;
padding: 25px 20px;
background: rgba(0,0,0,0.5);
border: 1px solid #323232;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-border-radius: 5px;
-moz-border-radius: 5px; }
code {
font-family: "Helvetica Neue", "Lucida Grande", "Arial"; }
ul {
margin: 15px 0;
padding: 0 0 0 35px; }
ul li {
margin: 0;
padding: 2px 0;
list-style: square; }
ul li ul {
margin: 0;
padding-left: 12px;
}
.man-name, #Express { display:none; }
.sect {
margin-left: 40px; }
img {
margin-left: 20px;
margin-bottom: 15px;
}
#logo {
display: block;
margin-left: 30%;
margin-bottom: 30px;
width: 194px;
height: 51px;
background: url(images/logo.png) 0 0 no-repeat;
text-indent: -99999px; }
#logo:hover {
opacity: 0.7; }
#logo:active {
opacity: 0.3; }
#ribbon {
position: fixed;
top: 0;
right: 0;
z-index: 2; }
#wrapper {
width: 100%;
min-height: 800px;
background: url(images/top.png) 0 0 repeat-x; }
#container {
margin: 0 auto;
padding-top: 80px;
width: 550px; }
#toc {
position: fixed;
top: 0;
left: 0;
margin: 0 0 0 15px;
padding: 15px;
height: 100%;
background: rgba(0,0,0,0.2);
overflow: auto;
border-right: 1px solid rgba(255,255,255,0.05);
}
#toc li {
padding: 0;
list-style: none;
}
#toc li a {
font-size: 11px;
}
#menu {
margin-left: 65px;
padding: 0;
padding-bottom: 30px; }
#menu li {
display: inline;
list-style: none; }
#menu li a {
display: block;
float: left;
margin: 0 2px;
padding: 3px 15px;
background: rgba(0,0,0,0.2);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-transition-property: opacity, -webkit-transform, color, background-color, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
#menu li a:hover,
#menu li a.active {
background: rgba(0,0,0,0.5); }
#menu li a:active {
background: rgba(0,0,0,0.1);
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4); }
</style>
<script>
$(function(){
$('.section').hide();
$('.toggle, a.section-title').toggle(function(){
$(this).siblings('ul').fadeIn(300);
return false;
}, function(){
$(this).siblings('ul').fadeOut(300);
return false;
});
});
</script>
</head>
<body>
<a href='http://github.com/visionmedia/express'>
<img alt='Fork me on GitHub' id='ribbon' src='http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png' />
</a>
<div id="wrapper">
<div id="container">
<a href='http://github.com/visionmedia/express' id='logo'>Express</a>
<p id="tagline">
High performance, high class web development for
<a href="http://nodejs.org">Node.js</a>
</p>
<ul id="menu">
<li><a href="index.html">Home</a></li>
<li><a href="guide.html">Guide</a></li>
<li><a href="contrib.html">Contributing</a></li>
<li><a href="applications.html">Applications</a></li>
</ul>

View File

@@ -1,347 +0,0 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "MIGRATE" "" "October 2010" "" ""
.
.SH "NAME"
\fBmigrate\fR
.
.SS "Built On Connect"
Express 1\.x is written to run on\-top of the Connect \fIhttp://extjs\.github\.com/Connect\fR middlware framework, thus the \fIPlugin\fR has been replaced by Connect\'s middleware\. By abstracting our middleware to Connect we allow additional community frameworks to develop robust, high\-level frameworks using the same technologies as Express\.
.
.SS "Creating Applications"
Previously due to legacy code implemented in the early days of node, Express unfortunately had some globals\. The DSL would previously be accessed as shown below:
.
.IP "" 4
.
.nf
require(\'express\');
configure(function(){
// app configuration
});
get(\'/\', function(){
return \'hello world\';
});
.
.fi
.
.IP "" 0
.
.P
Now we utilize the CommonJS module system appropriately, and introduce \fIexpress\.createServer()\fR which accepts the same arguments as \fIhttp\.createServer()\fR:
.
.IP "" 4
.
.nf
var express = require(\'express\'),
app = express\.createServer();
app\.configure(function(){
// app configuration
});
app\.get(\'/\', function(req, res){
res\.send(\'hello world\');
});
.
.fi
.
.IP "" 0
.
.P
Express 1\.x does \fInot\fR currently allow returning of a string\.
.
.SS "Plugins vs Middleware"
Previously Express was bundled with plugins, which were essentially what are now Connect middleware\. Previously plugins would be utilized in a manor similar to below:
.
.IP "" 4
.
.nf
use(Logger);
use(MethodOverride);
use(Cookie);
.
.fi
.
.IP "" 0
.
.P
Which we can now \fIuse()\fR within our app, or pass to the \fIexpress\.createServer()\fR method:
.
.IP "" 4
.
.nf
var app = express\.createServer(
express\.logger(),
express\.methodOverride(),
express\.cookieDecoder()
);
.
.fi
.
.IP "" 0
.
.P
or:
.
.IP "" 4
.
.nf
var app = express\.createServer();
app\.use(express\.logger());
app\.use(express\.methodOverride());
app\.use(express\.cookieDecoder());
.
.fi
.
.IP "" 0
.
.P
For documentation on creating Connect middleware visit Middleware Authoring \fIhttp://extjs\.github\.com/Connect/#Middleware\-Authoring\fR\.
.
.SS "Running Applications"
Previously a global function \fIrun()\fR, was available:
.
.IP "" 4
.
.nf
run();
.
.fi
.
.IP "" 0
.
.P
The new \fIexpress\.Server\fR has the same API as \fIhttp\.Server\fR, so we can do things like:
.
.IP "" 4
.
.nf
app\.listen();
app\.listen(3000);
.
.fi
.
.IP "" 0
.
.SS "Route Parameters"
Previously we could use \fIthis\.param()\fR to attempt fetching a route, query string, or request body parameter:
.
.IP "" 4
.
.nf
get(\'/user/:id\', function(){
this\.param(\'id\');
});
.
.fi
.
.IP "" 0
.
.P
Polymorphic parameter access can be done using \fBreq\.param()\fR:
.
.IP "" 4
.
.nf
app\.get(\'/user/:id\', function(req, res){
req\.param(\'id\');
});
.
.fi
.
.IP "" 0
.
.P
Route parameters are available via \fBreq\.params\fR:
.
.IP "" 4
.
.nf
app\.get(\'/user/:id\', function(req, res){
req\.params\.id;
});
.
.fi
.
.IP "" 0
.
.SS "Passing Route Control"
Old express had a weak notion of route passing, which did not support async, and was never properly implemented for practical use:
.
.IP "" 4
.
.nf
get(\'/\', function(){
this\.pass(\'/foobar\');
});
.
.fi
.
.IP "" 0
.
.P
Now Express has access to Connect\'s \fInext()\fR function, which is passed as the third and final argument\. Calling \fInext()\fR will pass control to the next \fImatching route\fR, or continue down the stack of Connect middleware\.
.
.IP "" 4
.
.nf
app\.get(\'/user/:id?\', function(req, res, next){
next();
});
app\.get(\'/user\', function(){
// \.\.\. respond
});
.
.fi
.
.IP "" 0
.
.SS "View Rendering"
View filenames no longer take the form \fINAME\fR\.\fITYPE\fR\.\fIENGINE\fR, the \fIContent\-Type\fR can be set via \fIres\.contentType()\fR or \fIres\.header()\fR\. For example what was previously \fIlayout\.html\.haml\fR, should now be \fIlayout\.haml\fR\.
.
.P
Previously a view render looked something like this:
.
.IP "" 4
.
.nf
get(\'/\', function(){
this\.render(\'index\.html\.haml\', {
locals: { title: \'My Site\' }
});
});
.
.fi
.
.IP "" 0
.
.P
We now have \fIres\.render()\fR, however the options passed to haml \fIhttp://github\.com/visionmedia/haml\.js\fR, jade \fIhttp://github\.com/visionmedia/jade\fR, and others remain the same\.
.
.IP "" 4
.
.nf
app\.get(\'/\', function(req, res){
res\.render(\'index\.haml\', {
locals: { title: \'My Site\' }
});
});
.
.fi
.
.IP "" 0
.
.P
Previously rendering of a collection via \fIpartial()\fR would look something like this:
.
.IP "" 4
.
.nf
this\.partial(\'comment\.html\.haml\', { collection: comments });
.
.fi
.
.IP "" 0
.
.P
Although this worked just fine, it was generally to verbose, the similar but new API looks like this, as \fIpartial()\fR is \fIalways\fR passed as a local variable:
.
.IP "" 4
.
.nf
partial(\'comment\.haml\', { collection: comments });
.
.fi
.
.IP "" 0
.
.P
To make things even less verbose we can assume the extension when omitted:
.
.IP "" 4
.
.nf
partial(\'comment\', { collection: comments });
.
.fi
.
.IP "" 0
.
.P
And once again even further, when rendering a collection we can simply pass an array, if no other options are desired:
.
.IP "" 4
.
.nf
partial(\'comments\', comments);
.
.fi
.
.IP "" 0
.
.SS "Redirecting"
Previously you would
.
.IP "" 4
.
.nf
this\.redirect(\'/somewhere\');
.
.fi
.
.IP "" 0
.
.P
However you would now:
.
.IP "" 4
.
.nf
res\.redirect(\'/somewhere\');
res\.redirect(\'/somewhere\', 301);
.
.fi
.
.IP "" 0
.
.SS "HTTP Client"
Previously Express provided a high level http client, this library is no more as it does not belong in Express, however it may be resurrected as a separate module\.
.
.SS "Core Extensions"
Express is no longer dependent on the JavaScript Extensions \fIhttp://github\.com/visionmedia/ext\.js\fR library, so those of you using the methods provided by it such as \fBObject\.merge(a, b)\fR will need to roll your own, or install the module via:
.
.IP "" 4
.
.nf
$ npm install ext
.
.fi
.
.IP "" 0

View File

@@ -1,412 +0,0 @@
<html>
<head>
<title>Express - node web framework</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<style>
#tagline {
margin-left: 75px;
margin-bottom: 30px;
color: rgba(255,255,255,0.7); }
html {
background: #1c1c1c url(images/bg.tile.jpg); }
body {
margin: 0;
padding-bottom: 30px;
font: 14px/1.4 "Helvetica Neue", "Lucida Grande", "Arial";
font-size: 14px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
background: url(images/bg.jpg) 50% 0 no-repeat;
color: #8b8b8b; }
* {
outline: none; }
em {
color: white; }
a img {
border: none !important; }
a {
font-weight: bold;
text-decoration: none;
color: white;
-webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
a:hover {
opacity: 0.8; }
h1, h2, h3, h4 {
margin: 45px 0 0 0;
color: white;
text-shadow: 1px 2px 2px rgba(0,0,0,0.6); }
h3 {
font-size: 18px; }
h4 {
margin-left: 10px;
font-size: 14px;
}
pre {
margin: 20px 10px;
padding: 25px 20px;
background: rgba(0,0,0,0.5);
border: 1px solid #323232;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-border-radius: 5px;
-moz-border-radius: 5px; }
code {
font-family: "Helvetica Neue", "Lucida Grande", "Arial"; }
ul {
margin: 15px 0;
padding: 0 0 0 35px; }
ul li {
margin: 0;
padding: 2px 0;
list-style: square; }
ul li ul {
margin: 0;
padding-left: 12px;
}
.man-name, #Express { display:none; }
.sect {
margin-left: 40px; }
img {
margin-left: 20px;
margin-bottom: 15px;
}
#logo {
display: block;
margin-left: 30%;
margin-bottom: 30px;
width: 194px;
height: 51px;
background: url(images/logo.png) 0 0 no-repeat;
text-indent: -99999px; }
#logo:hover {
opacity: 0.7; }
#logo:active {
opacity: 0.3; }
#ribbon {
position: fixed;
top: 0;
right: 0;
z-index: 2; }
#wrapper {
width: 100%;
min-height: 800px;
background: url(images/top.png) 0 0 repeat-x; }
#container {
margin: 0 auto;
padding-top: 80px;
width: 550px; }
#toc {
position: fixed;
top: 0;
left: 0;
margin: 0 0 0 15px;
padding: 15px;
height: 100%;
background: rgba(0,0,0,0.2);
overflow: auto;
border-right: 1px solid rgba(255,255,255,0.05);
}
#toc li {
padding: 0;
list-style: none;
}
#toc li a {
font-size: 11px;
}
#menu {
margin-left: 65px;
padding: 0;
padding-bottom: 30px; }
#menu li {
display: inline;
list-style: none; }
#menu li a {
display: block;
float: left;
margin: 0 2px;
padding: 3px 15px;
background: rgba(0,0,0,0.2);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-webkit-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 2px 2px rgba(0,0,0,0.6);
-webkit-transition-property: opacity, -webkit-transform, color, background-color, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out; }
#menu li a:hover,
#menu li a.active {
background: rgba(0,0,0,0.5); }
#menu li a:active {
background: rgba(0,0,0,0.1);
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0,0.4); }
</style>
<script>
$(function(){
$('.section').hide();
$('.toggle, a.section-title').toggle(function(){
$(this).siblings('ul').fadeIn(300);
return false;
}, function(){
$(this).siblings('ul').fadeOut(300);
return false;
});
});
</script>
</head>
<body>
<a href='http://github.com/visionmedia/express'>
<img alt='Fork me on GitHub' id='ribbon' src='http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png' />
</a>
<div id="wrapper">
<div id="container">
<a href='http://github.com/visionmedia/express' id='logo'>Express</a>
<p id="tagline">
High performance, high class web development for
<a href="http://nodejs.org">Node.js</a>
</p>
<ul id="menu">
<li><a href="index.html">Home</a></li>
<li><a href="guide.html">Guide</a></li>
<li><a href="contrib.html">Contributing</a></li>
<li><a href="applications.html">Applications</a></li>
</ul>
<div class='mp'>
<h2 id="Express">Express</h2>
<p class="man-name">
<code>migrate</code>
</p>
<h3 id="Built-On-Connect">Built On Connect</h3>
<p>Express 1.x is written to run on-top of the <a href="http://extjs.github.com/Connect">Connect</a> middlware
framework, thus the <em>Plugin</em> has been replaced by Connect's middleware. By abstracting our middleware
to Connect we allow additional community frameworks to develop robust, high-level frameworks using
the same technologies as Express.</p>
<h3 id="Creating-Applications">Creating Applications</h3>
<p>Previously due to legacy code implemented in the early days of node,
Express unfortunately had some globals. The DSL would previously be
accessed as shown below:</p>
<pre><code>require('express');
configure(function(){
// app configuration
});
get('/', function(){
return 'hello world';
});
</code></pre>
<p>Now we utilize the CommonJS module system appropriately, and
introduce <em>express.createServer()</em> which accepts the same arguments
as <em>http.createServer()</em>:</p>
<pre><code>var express = require('express'),
app = express.createServer();
app.configure(function(){
// app configuration
});
app.get('/', function(req, res){
res.send('hello world');
});
</code></pre>
<p>Express 1.x does <em>not</em> currently allow returning of a string.</p>
<h3 id="Plugins-vs-Middleware">Plugins vs Middleware</h3>
<p>Previously Express was bundled with plugins, which were essentially what
are now Connect middleware. Previously plugins would be utilized in a manor
similar to below:</p>
<pre><code>use(Logger);
use(MethodOverride);
use(Cookie);
</code></pre>
<p>Which we can now <em>use()</em> within our app, or pass to the <em>express.createServer()</em> method:</p>
<pre><code>var app = express.createServer(
express.logger(),
express.methodOverride(),
express.cookieDecoder()
);
</code></pre>
<p>or:</p>
<pre><code>var app = express.createServer();
app.use(express.logger());
app.use(express.methodOverride());
app.use(express.cookieDecoder());
</code></pre>
<p>For documentation on creating Connect middleware visit <a href="http://extjs.github.com/Connect/#Middleware-Authoring">Middleware Authoring</a>.</p>
<h3 id="Running-Applications">Running Applications</h3>
<p>Previously a global function <em>run()</em>, was available:</p>
<pre><code>run();
</code></pre>
<p>The new <em>express.Server</em> has the same API as <em>http.Server</em>,
so we can do things like:</p>
<pre><code>app.listen();
app.listen(3000);
</code></pre>
<h3 id="Route-Parameters">Route Parameters</h3>
<p>Previously we could use <em>this.param()</em> to attempt
fetching a route, query string, or request body parameter:</p>
<pre><code>get('/user/:id', function(){
this.param('id');
});
</code></pre>
<p>Polymorphic parameter access can be done using <code>req.param()</code>:</p>
<pre><code>app.get('/user/:id', function(req, res){
req.param('id');
});
</code></pre>
<p>Route parameters are available via <code>req.params</code>:</p>
<pre><code>app.get('/user/:id', function(req, res){
req.params.id;
});
</code></pre>
<h3 id="Passing-Route-Control">Passing Route Control</h3>
<p>Old express had a weak notion of route passing,
which did not support async, and was never properly
implemented for practical use:</p>
<pre><code>get('/', function(){
this.pass('/foobar');
});
</code></pre>
<p>Now Express has access to Connect's <em>next()</em> function,
which is passed as the third and final argument. Calling <em>next()</em> will
pass control to the next <em>matching route</em>, or continue down the stack
of Connect middleware.</p>
<pre><code>app.get('/user/:id?', function(req, res, next){
next();
});
app.get('/user', function(){
// ... respond
});
</code></pre>
<h3 id="View-Rendering">View Rendering</h3>
<p>View filenames no longer take the form <em>Express</em>.<em>TYPE</em>.<em>ENGINE</em>,
the <em>Content-Type</em> can be set via <em>res.contentType()</em> or
<em>res.header()</em>. For example what was previously <em>layout.html.haml</em>,
should now be <em>layout.haml</em>.</p>
<p>Previously a view render looked something like this:</p>
<pre><code>get('/', function(){
this.render('index.html.haml', {
locals: { title: 'My Site' }
});
});
</code></pre>
<p>We now have <em>res.render()</em>, however the options passed to <a href="http://github.com/visionmedia/haml.js">haml</a>, <a href="http://github.com/visionmedia/jade">jade</a>, and others
remain the same.</p>
<pre><code>app.get('/', function(req, res){
res.render('index.haml', {
locals: { title: 'My Site' }
});
});
</code></pre>
<p>Previously rendering of a collection via <em>partial()</em> would look something like this:</p>
<pre><code>this.partial('comment.html.haml', { collection: comments });
</code></pre>
<p>Although this worked just fine, it was generally to verbose, the similar but new API
looks like this, as <em>partial()</em> is <em>always</em> passed as a local variable:</p>
<pre><code>partial('comment.haml', { collection: comments });
</code></pre>
<p>To make things even less verbose we can assume the extension when omitted:</p>
<pre><code>partial('comment', { collection: comments });
</code></pre>
<p>And once again even further, when rendering a collection we can simply pass
an array, if no other options are desired:</p>
<pre><code>partial('comments', comments);
</code></pre>
<h3 id="Redirecting">Redirecting</h3>
<p>Previously you would</p>
<pre><code>this.redirect('/somewhere');
</code></pre>
<p>However you would now:</p>
<pre><code>res.redirect('/somewhere');
res.redirect('/somewhere', 301);
</code></pre>
<h3 id="HTTP-Client">HTTP Client</h3>
<p>Previously Express provided a high level http client, this library is no more
as it does not belong in Express, however it may be resurrected as a separate module.</p>
<h3 id="Core-Extensions">Core Extensions</h3>
<p>Express is no longer dependent on the <a href="http://github.com/visionmedia/ext.js">JavaScript Extensions</a> library, so those of you using the methods provided by it such as <code>Object.merge(a, b)</code> will need to
roll your own, or install the module via:</p>
<pre><code>$ npm install ext
</code></pre>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,189 +0,0 @@
### Built On Connect
Express 1.x is written to run on-top of the [Connect](http://extjs.github.com/Connect) middlware
framework, thus the _Plugin_ has been replaced by Connect's middleware. By abstracting our middleware
to Connect we allow additional community frameworks to develop robust, high-level frameworks using
the same technologies as Express.
### Creating Applications
Previously due to legacy code implemented in the early days of node,
Express unfortunately had some globals. The DSL would previously be
accessed as shown below:
require('express');
configure(function(){
// app configuration
});
get('/', function(){
return 'hello world';
});
Now we utilize the CommonJS module system appropriately, and
introduce _express.createServer()_ which accepts the same arguments
as _http.createServer()_:
var express = require('express'),
app = express.createServer();
app.configure(function(){
// app configuration
});
app.get('/', function(req, res){
res.send('hello world');
});
Express 1.x does _not_ currently allow returning of a string.
### Plugins vs Middleware
Previously Express was bundled with plugins, which were essentially what
are now Connect middleware. Previously plugins would be utilized in a manor
similar to below:
use(Logger);
use(MethodOverride);
use(Cookie);
Which we can now _use()_ within our app, or pass to the _express.createServer()_ method:
var app = express.createServer(
express.logger(),
express.methodOverride(),
express.cookieDecoder()
);
or:
var app = express.createServer();
app.use(express.logger());
app.use(express.methodOverride());
app.use(express.cookieDecoder());
For documentation on creating Connect middleware visit [Middleware Authoring](http://extjs.github.com/Connect/#Middleware-Authoring).
### Running Applications
Previously a global function _run()_, was available:
run();
The new _express.Server_ has the same API as _http.Server_,
so we can do things like:
app.listen();
app.listen(3000);
### Route Parameters
Previously we could use _this.param()_ to attempt
fetching a route, query string, or request body parameter:
get('/user/:id', function(){
this.param('id');
});
Polymorphic parameter access can be done using `req.param()`:
app.get('/user/:id', function(req, res){
req.param('id');
});
Route parameters are available via `req.params`:
app.get('/user/:id', function(req, res){
req.params.id;
});
### Passing Route Control
Old express had a weak notion of route passing,
which did not support async, and was never properly
implemented for practical use:
get('/', function(){
this.pass('/foobar');
});
Now Express has access to Connect's _next()_ function,
which is passed as the third and final argument. Calling _next()_ will
pass control to the next _matching route_, or continue down the stack
of Connect middleware.
app.get('/user/:id?', function(req, res, next){
next();
});
app.get('/user', function(){
// ... respond
});
### View Rendering
View filenames no longer take the form _NAME_._TYPE_._ENGINE_,
the _Content-Type_ can be set via _res.contentType()_ or
_res.header()_. For example what was previously _layout.html.haml_,
should now be _layout.haml_.
Previously a view render looked something like this:
get('/', function(){
this.render('index.html.haml', {
locals: { title: 'My Site' }
});
});
We now have _res.render()_, however the options passed to [haml](http://github.com/visionmedia/haml.js), [jade](http://github.com/visionmedia/jade), and others
remain the same.
app.get('/', function(req, res){
res.render('index.haml', {
locals: { title: 'My Site' }
});
});
Previously rendering of a collection via _partial()_ would look something like this:
this.partial('comment.html.haml', { collection: comments });
Although this worked just fine, it was generally to verbose, the similar but new API
looks like this, as _partial()_ is _always_ passed as a local variable:
partial('comment.haml', { collection: comments });
To make things even less verbose we can assume the extension when omitted:
partial('comment', { collection: comments });
And once again even further, when rendering a collection we can simply pass
an array, if no other options are desired:
partial('comments', comments);
### Redirecting
Previously you would
this.redirect('/somewhere');
However you would now:
res.redirect('/somewhere');
res.redirect('/somewhere', 301);
### HTTP Client
Previously Express provided a high level http client, this library is no more
as it does not belong in Express, however it may be resurrected as a separate module.
### Core Extensions
Express is no longer dependent on the [JavaScript Extensions](http://github.com/visionmedia/ext.js) library, so those of you using the methods provided by it such as `Object.merge(a, b)` will need to
roll your own, or install the module via:
$ npm install ext

View File

@@ -1,65 +1,68 @@
// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname + '/../../support');
/**
* Module dependencies.
*/
var express = require('../../lib/express'),
crypto = require('crypto');
var express = require('../..')
, hash = require('./pass').hash;
var app = express.createServer();
var app = module.exports = express();
// config
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');
app.use(express.bodyDecoder());
app.use(express.cookieDecoder());
// middleware
app.use(express.bodyParser());
app.use(express.cookieParser('shhhh, very secret'));
app.use(express.session());
// Message helper, ideally we would use req.flash()
// however this is more light-weight for an example
// Session-persisted message middleware
app.dynamicHelpers({
message: function(req){
var err = req.session.error,
msg = req.session.success;
delete req.session.error;
delete req.session.success;
if (err) return '<p class="msg error">' + err + '</p>';
if (msg) return '<p class="msg success">' + msg + '</p>';
}
app.use(function(req, res, next){
var err = req.session.error
, msg = req.session.success;
delete req.session.error;
delete req.session.success;
res.locals.message = '';
if (err) res.locals.message = '<p class="msg error">' + err + '</p>';
if (msg) res.locals.message = '<p class="msg success">' + msg + '</p>';
next();
});
// Generate a salt for the user to prevent rainbow table attacks
// dummy database
var users = {
tj: {
name: 'tj',
salt: 'randomly-generated-salt',
pass: md5('foobar' + 'randomly-generated-salt')
}
tj: { name: 'tj' }
};
// Used to generate a hash of the plain-text password + salt
// when you create a user, generate a salt
// and hash the password ('foobar' is the pass here)
hash('foobar', function(err, salt, hash){
if (err) throw err;
// store the salt & hash in the "db"
users.tj.salt = salt;
users.tj.hash = hash;
});
function md5(str) {
return crypto.createHash('md5').update(str).digest('hex');
}
// Authenticate using our plain-object database of doom!
function authenticate(name, pass, fn) {
var user = users[name];
// query the db for the given username
if (!user) return fn(new Error('cannot find user'));
// apply the same algorithm to the POSTed password, applying
// the md5 against the pass / salt, if there is a match we
// found the user
if (user.pass == md5(pass + user.salt)) return fn(null, user);
// Otherwise password is invalid
if (!module.parent) console.log('authenticating %s:%s', name, pass);
var user = users[name];
// query the db for the given username
if (!user) return fn(new Error('cannot find user'));
// apply the same algorithm to the POSTed password, applying
// the hash against the pass / salt, if there is a match we
// found the user
hash(pass, user.salt, function(err, hash){
if (err) return fn(err);
if (hash == user.hash) return fn(null, user);
fn(new Error('invalid password'));
})
}
function restrict(req, res, next) {
@@ -71,56 +74,51 @@ function restrict(req, res, next) {
}
}
function accessLogger(req, res, next) {
console.log('/restricted accessed by %s', req.session.user.name);
next();
}
app.get('/', function(req, res){
res.redirect('/login');
res.redirect('login');
});
app.get('/restricted', restrict, accessLogger, function(req, res){
res.send('Wahoo! restricted area');
app.get('/restricted', restrict, function(req, res){
res.send('Wahoo! restricted area, click to <a href="/logout">logout</a>');
});
app.get('/logout', function(req, res){
// destroy the user's session to log them out
// will be re-created next request
req.session.destroy(function(){
res.redirect('home');
});
// destroy the user's session to log them out
// will be re-created next request
req.session.destroy(function(){
res.redirect('/');
});
});
app.get('/login', function(req, res){
if (req.session.user) {
req.session.success = 'Authenticated as ' + req.session.user.name
+ ' click to <a href="/logout">logout</a>. '
+ ' You may now access <a href="/restricted">/restricted</a>.';
}
res.render('login');
res.render('login');
});
app.post('/login', function(req, res){
authenticate(req.body.username, req.body.password, function(err, user){
if (user) {
// Regenerate session when signing in
// to prevent fixation
req.session.regenerate(function(){
// Store the user's primary key
// in the session store to be retrieved,
// or in this case the entire user object
req.session.user = user;
res.redirect('back');
});
} else {
req.session.error = 'Authentication failed, please check your '
+ ' username and password.'
+ ' (use "tj" and "foobar")';
res.redirect('back');
}
});
authenticate(req.body.username, req.body.password, function(err, user){
if (user) {
// Regenerate session when signing in
// to prevent fixation
req.session.regenerate(function(){
// Store the user's primary key
// in the session store to be retrieved,
// or in this case the entire user object
req.session.user = user;
req.session.success = 'Authenticated as ' + user.name
+ ' click to <a href="/logout">logout</a>. '
+ ' You may now access <a href="/restricted">/restricted</a>.';
res.redirect('back');
});
} else {
req.session.error = 'Authentication failed, please check your '
+ ' username and password.'
+ ' (use "tj" and "foobar")';
res.redirect('login');
}
});
});
app.listen(3000);
console.log('Express started on port 3000');
if (!module.parent) {
app.listen(3000);
console.log('Express started on port 3000');
}

48
examples/auth/pass.js Normal file
View File

@@ -0,0 +1,48 @@
// check out https://github.com/visionmedia/node-pwd
/**
* Module dependencies.
*/
var crypto = require('crypto');
/**
* Bytesize.
*/
var len = 128;
/**
* Iterations. ~300ms
*/
var iterations = 12000;
/**
* Hashes a password with optional `salt`, otherwise
* generate a salt for `pass` and invoke `fn(err, salt, hash)`.
*
* @param {String} password to hash
* @param {String} optional salt
* @param {Function} callback
* @api public
*/
exports.hash = function (pwd, salt, fn) {
if (3 == arguments.length) {
crypto.pbkdf2(pwd, salt, iterations, len, function(err, hash){
fn(err, (new Buffer(hash, 'binary')).toString('base64'));
});
} else {
fn = salt;
crypto.randomBytes(len, function(err, salt){
if (err) return fn(err);
salt = salt.toString('base64');
crypto.pbkdf2(pwd, salt, iterations, len, function(err, hash){
if (err) return fn(err);
fn(null, salt, (new Buffer(hash, 'binary')).toString('base64'));
});
});
}
};

View File

@@ -0,0 +1,2 @@
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Authentication Example</title>
<title><%= title %></title>
<style>
body {
padding: 50px;
@@ -16,6 +16,3 @@
</style>
</head>
<body>
<%- body %>
</body>
</html>

View File

@@ -1,6 +1,10 @@
<% var title = 'Authentication Example' %>
<% include head %>
<h1>Login</h1>
<%- message %>
Try accessing <a href="/restricted">/restricted</a>.
Try accessing <a href="/restricted">/restricted</a>, then authenticate with "tj" and "foobar".
<form method="post" action="/login">
<p>
<label>Username:</label>
@@ -13,4 +17,6 @@ Try accessing <a href="/restricted">/restricted</a>.
<p>
<input type="submit" value="Login">
</p>
</form>
</form>
<% include foot %>

View File

@@ -0,0 +1,24 @@
var express = require('../..')
, app = express();
app.set('views', __dirname);
app.set('view engine', 'jade');
var pets = [];
var n = 1000;
while (n--) {
pets.push({ name: 'Tobi', age: 2, species: 'ferret' });
pets.push({ name: 'Loki', age: 1, species: 'ferret' });
pets.push({ name: 'Jane', age: 6, species: 'ferret' });
}
app.use(express.logger('dev'));
app.get('/', function(req, res){
res.render('pets', { pets: pets });
});
app.listen(3000);
console.log('Express listening on port 3000');

View File

@@ -0,0 +1,12 @@
style
body {
padding: 50px;
font: 16px "Helvetica Neue", Helvetica;
}
table
for pet in pets
tr
td= pet.name
td= pet.age
td= pet.species

View File

@@ -1,25 +0,0 @@
// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname + '/../../support');
/**
* Module dependencies.
*/
var express = require('./../../lib/express');
// Our app IS the exports, this prevents require('./app').app,
// instead it is require('./app');
var app = module.exports = express.createServer();
// Illustrates that an app can be broken into
// several files, but yet extend the same app
require('./main');
require('./contact');
// Illustrates that one app (Server instance) can
// be "mounted" to another at the given route.
app.use('/blog', require('./blog'));
app.listen(3000);
console.log('Express started on port 3000');

View File

@@ -1,45 +0,0 @@
/**
* Module dependencies.
*/
var express = require('./../../../lib/express'),
fs = require('fs');
// Export our app as the module
var app = module.exports = express.createServer();
// Set views directory
app.set('views', __dirname + '/views');
// Load our posts
var posts = JSON.parse(fs.readFileSync(__dirname + '/posts.json', 'utf8'));
// Set our default view engine to "ejs"
app.set('view engine', 'ejs');
app.dynamicHelpers({
basepath: function(){
// "this" is the app, we can
// dynamically provide the "home"
// setting to all views
return this.set('home');
}
});
app.get('/', function(req, res){
res.render('index', {
locals: {
posts: posts
}
});
});
app.get('/post/:id', function(req, res){
var id = req.params.id;
res.render('post', {
locals: {
post: posts[id]
}
});
});

View File

@@ -1,4 +0,0 @@
[
{ "id": 0, "title": "Post one", "body": "Just some lame post" },
{ "id": 1, "title": "Post two", "body": "Just another lame post" }
]

View File

@@ -1,2 +0,0 @@
<h2>Posts</h2>
<%- partial('post', { collection: posts, as: global }) %>

View File

@@ -1,9 +0,0 @@
<html>
<head>
<title>Blog Example</title>
</head>
<body>
<h1>Best Blog Ever</h1>
<%- body %>
</body>
</html>

View File

@@ -1,2 +0,0 @@
<h3><a href="<%= basepath %>/post/<%= id %>"><%= title %></a></h3>
<p><%= body %></p>

View File

@@ -1 +0,0 @@
<%- partial('post', { object: post, as: global }) %>

View File

@@ -1,9 +0,0 @@
// in ./app.js we did "module.exports", allowing
// us to grab the app from the parent module (the one
// which required it)
var app = module.parent.exports;
app.get('/contact', function(req, res){
res.send('<p>Wahoo contact page</p>');
});

View File

@@ -1,10 +0,0 @@
// in ./app.js we did "module.exports", allowing
// us to grab the app from the parent module (the one
// which required it)
var app = module.parent.exports;
app.get('/', function(req, res){
res.send('<p>Visit <a href="/blog">/blog</a>'
+ ' or <a href="/contact">/contact</a></p>');
});

View File

@@ -0,0 +1,8 @@
var users = [];
users.push({ name: 'Tobi' });
users.push({ name: 'Loki' });
users.push({ name: 'Jane' });
module.exports = users;

View File

@@ -0,0 +1,41 @@
var express = require('../../')
, app = module.exports = express()
, users = require('./db');
app.get('/', function(req, res){
res.format({
html: function(){
res.send('<ul>' + users.map(function(user){
return '<li>' + user.name + '</li>';
}).join('') + '</ul>');
},
text: function(){
res.send(users.map(function(user){
return ' - ' + user.name + '\n';
}).join(''));
},
json: function(){
res.json(users);
}
})
});
// or you could write a tiny middleware like
// this to abstract make things a bit more declarative:
function format(mod) {
var obj = require(mod);
return function(req, res){
res.format(obj);
}
}
app.get('/users', format('./users'));
if (!module.parent) {
app.listen(3000);
console.log('listening on port 3000');
}

View File

@@ -0,0 +1,18 @@
var users = require('./db');
exports.html = function(req, res){
res.send('<ul>' + users.map(function(user){
return '<li>' + user.name + '</li>';
}).join('') + '</ul>');
};
exports.text = function(req, res){
res.send(users.map(function(user){
return ' - ' + user.name + '\n';
}).join(''));
};
exports.json = function(req, res){
res.json(users);
};

View File

@@ -0,0 +1,32 @@
/**
* Module dependencies.
*/
var express = require('../../');
var app = module.exports = express();
// ignore GET /favicon.ico
app.use(express.favicon());
// pass a secret to cookieParser() for signed cookies
app.use(express.cookieParser('manny is cool'));
// add req.session cookie support
app.use(express.cookieSession());
// do something with the session
app.use(count);
// custom middleware
function count(req, res) {
req.session.count = req.session.count || 0;
var n = req.session.count++;
res.send('viewed ' + n + ' times\n');
}
if (!module.parent) {
app.listen(3000);
console.log('Express server listening on port 3000');
}

View File

@@ -3,44 +3,52 @@
* Module dependencies.
*/
var express = require('./../../lib/express');
var express = require('../../')
, app = module.exports = express();
var app = express.createServer(
// Place default Connect favicon above logger so it is not in
// the logging output
express.favicon(),
// Custom logger format
express.logger({ format: '\x1b[1m:method\x1b[0m \x1b[33m:url\x1b[0m :response-time' }),
// add favicon() before logger() so
// GET /favicon.ico requests are not
// logged, because this middleware
// reponds to /favicon.ico and does not
// call next()
app.use(express.favicon());
// Provides req.cookies
express.cookieDecoder(),
// custom log format
if ('test' != process.env.NODE_ENV)
app.use(express.logger(':method :url'));
// Parses x-www-form-urlencoded request bodies (and json)
express.bodyDecoder()
);
// parses request cookies, populating
// req.cookies and req.signedCookies
// when the secret is passed, used
// for signing the cookies.
app.use(express.cookieParser('my secret here'));
// parses json, x-www-form-urlencoded, and multipart/form-data
app.use(express.bodyParser());
app.get('/', function(req, res){
if (req.cookies.remember) {
res.send('Remembered :). Click to <a href="/forget">forget</a>!.');
} else {
res.send('<form method="post"><p>Check to <label>'
+ '<input type="checkbox" name="remember"/> remember me</label> '
+ '<input type="submit" value="Submit"/>.</p></form>');
}
if (req.cookies.remember) {
res.send('Remembered :). Click to <a href="/forget">forget</a>!.');
} else {
res.send('<form method="post"><p>Check to <label>'
+ '<input type="checkbox" name="remember"/> remember me</label> '
+ '<input type="submit" value="Submit"/>.</p></form>');
}
});
app.get('/forget', function(req, res){
res.clearCookie('remember');
res.redirect('back');
res.clearCookie('remember');
res.redirect('back');
});
app.post('/', function(req, res){
if (req.body.remember) {
res.cookie('remember', '1', { path: '/', expires: new Date(Date.now() + 900000), httpOnly: true });
}
res.redirect('back');
var minute = 60000;
if (req.body.remember) res.cookie('remember', 1, { maxAge: minute });
res.redirect('back');
});
app.listen(3000);
console.log('Express started on port 3000');
if (!module.parent){
app.listen(3000);
console.log('Express started on port 3000');
}

46
examples/cors/index.js Normal file
View File

@@ -0,0 +1,46 @@
/**
* Module dependencies.
*/
var express = require('../..')
, app = express()
, api = express();
// app middleware
app.use(express.static(__dirname + '/public'));
// api middleware
api.use(express.logger('dev'));
api.use(express.bodyParser());
/**
* CORS support.
*/
api.all('*', function(req, res, next){
if (!req.get('Origin')) return next();
// use "*" here to accept any origin
res.set('Access-Control-Allow-Origin', 'http://localhost:3000');
res.set('Access-Control-Allow-Methods', 'GET, POST');
res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type');
// res.set('Access-Control-Allow-Max-Age', 3600);
if ('OPTIONS' == req.method) return res.send(200);
next();
});
/**
* POST a user.
*/
api.post('/user', function(req, res){
console.log(req.body);
res.send(201);
});
app.listen(3000);
api.listen(3001);
console.log('app listening on 3000');
console.log('api listening on 3001');

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<body>
<script>
var req = new XMLHttpRequest;
req.open('POST', 'http://localhost:3001/user', false);
req.setRequestHeader('Content-Type', 'application/json');
req.send('{"name":"tobi","species":"ferret"}');
console.log(req.responseText);
</script>
</body>
</html>

View File

@@ -3,30 +3,42 @@
* Module dependencies.
*/
var express = require('./../../lib/express');
var app = express.createServer();
var express = require('../../')
, app = module.exports = express();
app.get('/', function(req, res){
res.send('<ul>'
+ '<li>Download <a href="/files/amazing.txt">amazing.txt</a>.</li>'
+ '<li>Download <a href="/files/missing.txt">missing.txt</a>.</li>'
+ '</ul>');
res.send('<ul>'
+ '<li>Download <a href="/files/amazing.txt">amazing.txt</a>.</li>'
+ '<li>Download <a href="/files/missing.txt">missing.txt</a>.</li>'
+ '</ul>');
});
app.get('/files/*', function(req, res){
var file = req.params[0];
res.download(__dirname + '/files/' + file);
// /files/* is accessed via req.params[0]
// but here we name it :file
app.get('/files/:file(*)', function(req, res, next){
var file = req.params.file
, path = __dirname + '/files/' + file;
res.download(path);
});
app.error(function(err, req, res, next){
if (process.ENOENT == err.errno) {
res.send('Cant find that file, sorry!');
} else {
// Not a 404
next(err);
}
// error handling middleware. Because it's
// below our routes, you will be able to
// "intercept" errors, otherwise Connect
// will respond with 500 "Internal Server Error".
app.use(function(err, req, res, next){
// special-case 404s,
// remember you could
// render a 404 template here
if (404 == err.status) {
res.statusCode = 404;
res.send('Cant find that file, sorry!');
} else {
next(err);
}
});
app.listen(3000);
console.log('Express started on port 3000');
if (!module.parent) {
app.listen(3000);
console.log('Express started on port 3000');
}

View File

@@ -1 +1 @@
wow supes cool are you glad you downloaded this?
what an amazing download

View File

@@ -1,32 +0,0 @@
// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname + '/../../support');
/**
* Module dependencies.
*/
var express = require('./../../lib/express');
var app = express.createServer();
// Optional since express defaults to CWD/views
app.set('views', __dirname + '/views');
// Dummy users
var users = [
{ name: 'tj', email: 'tj@sencha.com' },
{ name: 'ciaran', email: 'ciaranj@gmail.com' },
{ name: 'aaron', email: 'aaron.heckmann+github@gmail.com' }
];
app.get('/', function(req, res){
res.render('users.ejs', {
locals: {
users: users
}
});
});
app.listen(3000);

50
examples/ejs/index.js Normal file
View File

@@ -0,0 +1,50 @@
/**
* Module dependencies.
*/
var express = require('../../');
var app = module.exports = express();
// Register ejs as .html. If we did
// not call this, we would need to
// name our views foo.ejs instead
// of foo.html. The __express method
// is simply a function that engines
// use to hook into the Express view
// system by default, so if we want
// to change "foo.ejs" to "foo.html"
// we simply pass _any_ function, in this
// case `ejs.__express`.
app.engine('.html', require('ejs').__express);
// Optional since express defaults to CWD/views
app.set('views', __dirname + '/views');
// Without this you would need to
// supply the extension to res.render()
// ex: res.render('users.html').
app.set('view engine', 'html');
// Dummy users
var users = [
{ name: 'tobi', email: 'tobi@learnboost.com' },
{ name: 'loki', email: 'loki@learnboost.com' },
{ name: 'jane', email: 'jane@learnboost.com' }
];
app.get('/', function(req, res){
res.render('users', {
users: users,
title: "EJS example",
header: "Some users"
});
});
if (!module.parent) {
app.listen(3000);
console.log('Express app started on port 3000');
}

View File

@@ -0,0 +1,2 @@
</body>
</html>

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title> <%= title %> </title>
<style type="text/css">
body {
padding: 50px;
font: 13px Helvetica, Arial, sans-serif;
}
</style>
</head>
<body>

View File

@@ -1,6 +0,0 @@
<html>
<body>
<h1>Users</h1>
<%- body %>
</body>
</html>

View File

@@ -1 +0,0 @@
<li><%= user.name %> &lt;<%= user.email %>&gt;</li>

View File

@@ -1,3 +0,0 @@
<ul id="users">
<%- partial('user', users) %>
</ul>

View File

@@ -0,0 +1,10 @@
<% include header.html %>
<h1>Users</h1>
<ul id="users">
<% users.forEach(function(user){ %>
<li><%= user.name %> &lt;<%= user.email %>&gt;</li>
<% }) %>
</ul>
<% include footer.html %>

View File

@@ -1,103 +0,0 @@
// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname + '/../../support');
/**
* Module dependencies.
*/
var express = require('./../../lib/express');
var app = express.createServer(),
sys = require('sys');
// Serve default connect favicon
app.use(express.favicon());
// Logger is placed below favicon, so favicon.ico
// requests will not be logged
app.use(express.logger({ format: '":method :url" :status' }));
// "app.router" positions our routes
// specifically above the middleware
// assigned below
app.use(app.router);
// When no more middleware require execution, aka
// our router is finished and did not respond, we
// can assume that it is "not found". Instead of
// letting Connect deal with this, we define our
// custom middleware here to simply pass a NotFound
// exception
app.use(function(req, res, next){
next(new NotFound(req.url));
});
app.set('views', __dirname + '/views');
// Provide our app with the notion of NotFound exceptions
function NotFound(path){
this.name = 'NotFound';
if (path) {
Error.call(this, 'Cannot find ' + path);
this.path = path;
} else {
Error.call(this, 'Not Found');
}
Error.captureStackTrace(this, arguments.callee);
}
sys.inherits(NotFound, Error);
// We can call app.error() several times as shown below.
// Here we check for an instanceof NotFound and show the
// 404 page, or we pass on to the next error handler.
// These handlers could potentially be defined within
// configure() blocks to provide introspection when
// in the development environment.
app.error(function(err, req, res, next){
if (err instanceof NotFound) {
res.render('404.jade', {
status: 404,
locals: {
error: err
}
});
} else {
next(err);
}
});
// Here we assume all errors as 500 for the simplicity of
// this demo, however you can choose whatever you like
app.error(function(err, req, res){
res.render('500.jade', {
status: 500,
locals: {
error: err
}
});
});
// Routes
app.get('/', function(req, res){
res.render('index.jade');
});
app.get('/404', function(req, res){
throw new NotFound;
});
app.get('/500', function(req, res, next){
next(new Error('keyboard cat!'));
});
app.listen(3000);
console.log('Express app started on port 3000');

View File

@@ -0,0 +1,112 @@
/**
* Module dependencies.
*/
var express = require('../../')
, app = module.exports = express()
, silent = 'test' == process.env.NODE_ENV;
// general config
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
// our custom "verbose errors" setting
// which we can use in the templates
// via settings['verbose errors']
app.enable('verbose errors');
// disable them in production
// use $ NODE_ENV=production node examples/error-pages
if ('production' == app.settings.env) {
app.disable('verbose errors');
}
app.use(express.favicon());
silent || app.use(express.logger('dev'));
// "app.router" positions our routes
// above the middleware defined below,
// this means that Express will attempt
// to match & call routes _before_ continuing
// on, at which point we assume it's a 404 because
// no route has handled the request.
app.use(app.router);
// Since this is the last non-error-handling
// middleware use()d, we assume 404, as nothing else
// responded.
// $ curl http://localhost:3000/notfound
// $ curl http://localhost:3000/notfound -H "Accept: application/json"
// $ curl http://localhost:3000/notfound -H "Accept: text/plain"
app.use(function(req, res, next){
res.status(404);
// respond with html page
if (req.accepts('html')) {
res.render('404', { url: req.url });
return;
}
// respond with json
if (req.accepts('json')) {
res.send({ error: 'Not found' });
return;
}
// default to plain-text. send()
res.type('txt').send('Not found');
});
// error-handling middleware, take the same form
// as regular middleware, however they require an
// arity of 4, aka the signature (err, req, res, next).
// when connect has an error, it will invoke ONLY error-handling
// middleware.
// If we were to next() here any remaining non-error-handling
// middleware would then be executed, or if we next(err) to
// continue passing the error, only error-handling middleware
// would remain being executed, however here
// we simply respond with an error page.
app.use(function(err, req, res, next){
// we may use properties of the error object
// here and next(err) appropriately, or if
// we possibly recovered from the error, simply next().
res.status(err.status || 500);
res.render('500', { error: err });
});
// Routes
app.get('/', function(req, res){
res.render('index.jade');
});
app.get('/404', function(req, res, next){
// trigger a 404 since no other middleware
// will match /404 after this one, and we're not
// responding here
next();
});
app.get('/403', function(req, res, next){
// trigger a 403 error
var err = new Error('not allowed!');
err.status = 403;
next(err);
});
app.get('/500', function(req, res, next){
// trigger a generic (500) error
next(new Error('keyboard cat!'));
});
if (!module.parent) {
app.listen(3000);
silent || console.log('Express started on port 3000');
}

View File

@@ -1,4 +1,5 @@
- if (error.path)
h2 Cannot find #{error.path}
- else
h2 Page Not Found
extends error
block content
h2 Cannot find #{url}

View File

@@ -1,2 +1,13 @@
h1 Error: #{error.message}
pre= error.stack
// note that we extend a different
// layout with jade for 4xx & 5xx
// responses
extends error
block content
h1 Error: #{error.message}
if settings['verbose errors']
pre= error.stack
else
p An error ocurred!

View File

@@ -0,0 +1,6 @@
html
head
title Error
body
h1 An error occurred!
block content

View File

@@ -1,8 +1,15 @@
h2 Pages Example
ul
li
| visit
a(href="/500") 500
li
| visit
a(href="/404") 404
extends layout
block content
h2 Pages Example
ul
li
| visit
a(href="/500") 500
li
| visit
a(href="/404") 404
li
| visit
a(href='/403') 403

View File

@@ -3,4 +3,4 @@ html
title Custom Pages Example
body
h1 My Site
!= body
block content

View File

@@ -1,25 +0,0 @@
/**
* Module dependencies.
*/
var express = require('./../../lib/express');
var app = express.createServer();
app.get('/', function(req, res){
// Caught and passed down to the errorHandler middleware
throw new Error('something broke!');
});
app.get('/next', function(req, res, next){
// We can also pass exceptions to next()
next(new Error('oh no!'))
});
// The errorHandler middleware in this case will dump exceptions to stderr
// as well as show the stack trace in responses, currently handles text/plain,
// text/html, and application/json responses to aid in development
app.use('/', express.errorHandler({ dumpExceptions: true, showStack: true }));
app.listen(3000);

48
examples/error/index.js Normal file
View File

@@ -0,0 +1,48 @@
/**
* Module dependencies.
*/
var express = require('../../')
, app = module.exports = express()
, test = app.get('env') == 'test';
if (!test) app.use(express.logger('dev'));
app.use(app.router);
// the error handler is strategically
// placed *below* the app.router; if it
// were above it would not receive errors
// from app.get() etc
app.use(error);
// error handling middleware have an arity of 4
// instead of the typical (req, res, next),
// otherwise they behave exactly like regular
// middleware, you may have several of them,
// in different orders etc.
function error(err, req, res, next) {
// log it
if (!test) console.error(err.stack);
// respond with 500 "Internal Server Error".
res.send(500);
}
app.get('/', function(req, res){
// Caught and passed down to the errorHandler middleware
throw new Error('something broke!');
});
app.get('/next', function(req, res, next){
// We can also pass exceptions to next()
process.nextTick(function(){
next(new Error('oh no!'));
});
});
if (!module.parent) {
app.listen(3000);
console.log('Express started on port 3000');
}

View File

@@ -0,0 +1,60 @@
var express = require('../..')
, app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
function User(name) {
this.private = 'heyyyy';
this.secret = 'something';
this.name = name;
this.id = 123;
}
// You'll probably want to do
// something like this so you
// dont expose "secret" data.
User.prototype.toJSON = function(){
return {
id: this.id,
name: this.name
}
};
app.use(express.logger('dev'));
// earlier on expose an object
// that we can tack properties on.
// all res.locals props are exposed
// to the templates, so "expose" will
// be present.
app.use(function(req, res, next){
res.locals.expose = {};
// you could alias this as req or res.expose
// to make it shorter and less annoying
next();
});
// pretend we loaded a user
app.use(function(req, res, next){
req.user = new User('Tobi');
next();
});
app.get('/', function(req, res){
res.redirect('/user');
});
app.get('/user', function(req, res){
// we only want to expose the user
// to the client for this route:
res.locals.expose.user = req.user;
res.render('page');
});
app.listen(3000);
console.log('app listening on port 3000');

View File

@@ -0,0 +1,14 @@
html
head
title Express
script
// call this whatever you like,
// or dump them into individual
// props like "var user ="
var data = !{JSON.stringify(expose)}
body
h1 Expose client data
p The following was exposed to the client:
pre
script
document.write(JSON.stringify(data, null, 2))

View File

@@ -1,78 +0,0 @@
// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname + '/../../support');
/**
* Module dependencies.
*/
var express = require('../../lib/express');
// App with session support
var app = express.createServer(
express.cookieDecoder(),
express.session()
);
// View settings
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
// Dynamic helpers are functions which are executed
// on each view render, unless dynamicHelpers is false.
// So for example we do not need to call messages() in our
// template, "messages" will be populated with the return
// value of this function.
app.dynamicHelpers({
messages: function(req, res){
// In the case of flash messages
// we return a function, allowing
// flash messages to only be flushed
// when called, otherwise every request
// will flush flash messages regardless.
return function(){
// Grab the flash messages
var messages = req.flash();
// We will render the "messages.ejs" partial
return res.partial('messages', {
// Our target object is our messages
object: messages,
// We want it to be named "types" in the partial
// since they are keyed like this:
// { info: ['foo'], error: ['bar']}
as: 'types',
// Pass a local named "hasMessages" so we can easily
// check if we have any messages at all
locals: { hasMessages: Object.keys(messages).length },
// We dont want dynamicHelpers in this partial, as
// it would cause infinite recursion
dynamicHelpers: false
});
}
}
});
app.dynamicHelpers({
// Another dynamic helper example. Since dynamic
// helpers resolve at view rendering time, we can
// "inject" the "page" local variable per request
// providing us with the request url.
page: function(req, res){
return req.url;
}
});
app.get('/', function(req, res){
// Not very realistic notifications but illustrates usage
req.flash('info', 'email queued');
req.flash('info', 'email sent');
req.flash('error', 'delivery failed');
res.render('index');
});
app.listen(3000);
console.log('Express app started on port 3000');

View File

@@ -1,3 +0,0 @@
<h1>Flash Message Example</h1>
<p>on page <%- page %></p>
<%- messages() %>

View File

@@ -1,5 +0,0 @@
<html>
<body>
<%- body %>
</body>
</html>

View File

@@ -1,12 +0,0 @@
<% if (hasMessages) { %>
<div id="messages">
<% for (var type in types) { %>
<h2><%= type %> messages</h2>
<ul id="<%= type %>">
<% types[type].forEach(function(msg){ %>
<li><%= msg %></li>
<% }) %>
</ul>
<% } %>
</div>
<% } %>

View File

@@ -1,79 +0,0 @@
/**
* Module dependencies.
*/
var express = require('./../../lib/express'),
sys = require('sys');
var app = express.createServer();
// Here we use the bodyDecoder middleware
// to parse urlencoded request bodies
// which populates req.body
app.use(express.bodyDecoder());
// The methodOverride middleware allows us
// to set a hidden input of _method to an arbitrary
// HTTP method to support app.put(), app.del() etc
app.use(express.methodOverride());
// Required by session
app.use(express.cookieDecoder());
// Required by req.flash() for persistent
// notifications
app.use(express.session());
app.get('/', function(req, res){
// get ?name=foo
var name = req.param('name') || '';
// Switch the button label based if we have a name
var label = name ? 'Update' : 'Save';
// Buffer all flash messages.
// Typically this would all be done in a template
// however for illustration purposes we iterate
// here.
// The messages in req.flash() persist until called,
// at which time they are flushed from the session
var msgs = '<ul>',
flash = req.flash();
Object.keys(flash).forEach(function(type){
flash[type].forEach(function(msg){
msgs += '<li class="' + type + '">' + msg + '</li>';
});
});
msgs += '</ul>';
// If we have a name, we are updating,
// so add the hidden _method input
res.send(msgs
+ '<form method="post">'
+ (name ? '<input type="hidden" value="put" name="_method" />' : '')
+ 'Name: <input type="text" name="name" value="' + name + '" />'
+ '<input type="submit" value="' + label + '" />'
+ '</form>');
});
app.post('/', function(req, res){
if (req.body.name) {
// Typically here we would create a resource
req.flash('info', 'Saved ' + req.body.name);
res.redirect('/?name=' + req.body.name);
} else {
req.flash('error', 'Error: name required');
res.redirect('/');
}
});
app.put('/', function(req, res){
// Typically here we would update a resource
req.flash('info', 'Updated ' + req.body.name);
res.redirect('/?name=' + req.body.name);
});
app.listen(3000);
console.log('Express app started on port 3000');

View File

@@ -1,63 +0,0 @@
/**
* Module dependencies.
*/
var express = require('../../lib/express');
var app = express.createServer();
// Fake items
var items = [
{ name: 'foo' },
{ name: 'bar' },
{ name: 'baz' }
];
// Routes
app.get('/', function(req, res, next){
res.send('Visit /item/2');
});
app.get('/item/:id.:format?', function(req, res, next){
var id = req.params.id,
format = req.params.format,
item = items[id];
// Ensure item exists
if (item) {
// Serve the format
switch (format) {
case 'json':
// Detects json
res.send(item);
break;
case 'xml':
// Set contentType as xml then sends
// the string
var xml = ''
+ '<items>'
+ '<item>' + item.name + '</item>'
+ '</items>';
res.contentType('.xml');
res.send(xml);
break;
case 'html':
default:
// By default send some hmtl
res.send('<h1>' + item.name + '</h1>');
}
} else {
// We could simply pass route control and potentially 404
// by calling next(), or pass an exception like below.
next(new Error('Item ' + id + ' does not exist'));
}
});
// Middleware
app.use(express.errorHandler({ showStack: true }));
app.listen(3000);
console.log('Express app started on port 3000');

View File

@@ -1,119 +0,0 @@
// Expose modules in ./support for demo purposes
require.paths.unshift(__dirname + '/../../support');
/**
* Module dependencies.
*/
var express = require('./../../lib/express'),
http = require('http');
var app = express.createServer();
// Expose our views
app.set('views', __dirname + '/views');
/**
* Request github json api `path`.
*
* @param {String} path
* @param {Function} fn
* @api public
*/
function request(path, fn){
var client = http.createClient(80, 'github.com'),
req = client.request('GET', '/api/v2/json' + path, { Host: 'github.com' });
req.addListener('response', function(res){
res.body = '';
res.addListener('data', function(chunk){ res.body += chunk; });
res.addListener('end', function(){
try {
fn(null, JSON.parse(res.body));
} catch (err) {
fn(err);
}
});
});
req.end();
}
/**
* Sort repositories by watchers desc.
*
* @param {Array} repos
* @api public
*/
function sort(repos){
return repos.sort(function(a, b){
if (a.watchers == b.watchers) return 0;
if (a.watchers > b.watchers) return -1;
if (a.watchers < b.watchers) return 1;
});
}
/**
* Tally up total watchers.
*
* @param {Array} repos
* @return {Number}
* @api public
*/
function totalWatchers(repos) {
return repos.reduce(function(sum, repo){
return sum + repo.watchers;
}, 0);
}
/**
* Default to my user name :)
*/
app.get('/', function(req, res){
res.redirect('/repos/visionmedia');
});
/**
* Display repos.
*/
app.get('/repos/*', function(req, res, next){
var names = req.params[0].split('/'),
users = [];
(function fetchData(name){
// We have a user name
if (name) {
console.log('... fetching \x1b[33m%s\x1b[0m', name);
request('/repos/show/' + name, function(err, user){
if (err) {
next(err)
} else {
user.totalWatchers = totalWatchers(user.repositories);
user.repos = sort(user.repositories);
user.name = name;
users.push(user);
fetchData(names.shift());
}
});
// No more users
} else {
console.log('... done');
res.render('index.jade', {
locals: {
users: users
}
});
}
})(names.shift());
});
// Serve statics from ./public
app.use(express.staticProvider(__dirname + '/public'));
// Listen on port 3000
app.listen(3000);
console.log('Express app started on port 3000');

View File

@@ -1,19 +0,0 @@
body {
padding: 30px 50px;
font: 12px/1.4 "Helvetica Neue", Arial, sans-serif;
}
a {
color: #00AAFF;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.user {
margin: 0 10px;
float: left;
width: 25%;
}
table td:nth-child(2) {
padding: 0 5px;
}

View File

@@ -1,8 +0,0 @@
- each user in users
.user
h2= user.name
p.summary
| <a href="http://github.com/#{user.name}">#{user.name}</a> has
| <strong>#{user.repos.length}</strong> repositories
| with a total of <strong>#{user.totalWatchers}</strong> watchers.
table#repos!= partial('repo', user.repos)

View File

@@ -1,7 +0,0 @@
!!!
html
head
title Github Example
link(rel="stylesheet", href="/style.css")
body
#container!= body

Some files were not shown because too many files have changed in this diff Show More