Commit Graph

71 Commits (dfe8e95be4df42f86b393f060ca5a63dcc17dae1)

Author SHA1 Message Date
TJ Holowaychuk dfe8e95be4 remove ctx.inspect() implementation. Closes #164
obscures user-defned properties. ideally we fix it so .req / .res are not so verbose but meh for now
2014-04-05 19:15:14 -07:00
New Now Nohow 0a223f2bb7 Let errors provide their own status.
When calling `ctx.throw`, you're allowed to provide an error object and a
status code. The status code is later set as the `status` property of the error
object. If no status code is provided, it defaults to 500. However, this
happens even if the error object already had a `status` property.

This commit allows an error's pre-existing `status` property to be used in
conjunction with `ctx.throw`.

If the status code is below 500, the error message will be exposed to the user
in the HTTP response. It would be nice to have some Error subclasses that
always have the same status code, because then we could just write
`ctx.throw(new WhateverError())`, and define which 4xx error code we want in
the definition of `WhateverError` itself. If, for example, an
`AuthenticationError` is always meant to go along with a 401, then it would be
nice to just have that knowledge in the class definition.
2014-03-06 22:54:25 -05:00
TJ Holowaychuk b1f0abd16d Revert "add response.charset accessor and ctx.charset alias"
This reverts commit 94413b1bd4.
2014-03-06 18:05:01 -08:00
dead_horse 72a9b69146 add request.hostname(getter), fixed #224
make request.host and request.hostname work as node url lib
http://nodejs.org/api/url.html#url_url
this commit will change older request.host(getter)
2014-02-26 14:03:05 +08:00
Jonathan Ong cb532b7bef this.writable to check if the socket is writable
because node sucks haha
2014-02-15 02:06:08 -08:00
TJ Holowaychuk 94413b1bd4 add response.charset accessor and ctx.charset alias 2014-02-14 09:33:10 -08:00
TJ Holowaychuk 08149052fa change ctx.length and ctx.type to always delegate to response object [breaking change] 2014-02-14 09:16:39 -08:00
Jonathan Ong 2d1147ed21 context.onerror: fix response handling
closes #199
2014-01-24 14:29:57 -08:00
TJ Holowaychuk 0610a841df change ctx.throw() to no longer .expose 5xx errors. Closes #197 2014-01-20 18:44:07 -08:00
TJ Holowaychuk 3bb7a63b77 ocd 2014-01-13 06:36:49 -08:00
TJ Holowaychuk 53b1b8133c refactor with delegation utility 2014-01-13 06:36:10 -08:00
TJ Holowaychuk 26fb6a138a add ctx.host= delegate 2014-01-07 17:22:46 -08:00
Veselin Todorov 6cd4c776f8 context.throw supports Error instances 2014-01-04 10:28:24 +02:00
TJ Holowaychuk 7c3181e4d7 fix ctx.inspect() after previous commit
otherwise .body will be missing
2013-12-29 11:20:51 -08:00
TJ Holowaychuk 14fe56e632 add explicit .toJSON() calls to ctx.toJSON() 2013-12-29 10:19:21 -08:00
TJ Holowaychuk 88fb4c841d remove trailing comma 2013-12-29 05:46:12 -08:00
TJ Holowaychuk 87c03aff61 add support for .throw(status, msg). Closes #130 2013-12-20 15:34:16 -08:00
Jonathan Ong 879293f548 use on-socket-error 2013-12-20 14:39:53 -08:00
TJ Holowaychuk 171892c669 fix: cleanup socker error handler on response 2013-12-19 08:53:48 -08:00
Eivind Fjeldstad ddde5f96ef add deprecation warning for ctx.error
Didn't notice the change until now. A warning would be useful
2013-12-19 11:48:32 +01:00
TJ Holowaychuk 1769f9c431 add socket error-handling. Closes #114 2013-12-17 17:37:35 -08:00
Jonathan Ong 0c330ffb1a lint: remove unused references, fix global leak 2013-12-09 01:53:18 -08:00
TJ Holowaychuk e78349a73d refactor ctx.toJSON() to recurse. Closes #108 2013-12-02 09:08:01 -08:00
TJ Holowaychuk 8e10f12d38 add ctx.remove() and res.remove(). Closes #100 2013-11-24 05:06:35 -08:00
Jonathan Ong 9d7dd437d7 context delegates: response.lastModified and response.etag
only doing setters because i think getters would be pretty confusing.
2013-11-20 14:09:49 -08:00
Jonathan Ong 28ca80758b ctx.search and ctx.request.search 2013-11-18 19:29:29 -08:00
Jonathan Ong 7d9c6ba66c context: .error() -> .throw()
.error() still works for compatibility, but it will be removed in the
future. closes #94
2013-11-18 17:38:12 -08:00
Jonathan Ong b88babe5ee refactor context: move the non-delegated properties up 2013-11-18 17:33:41 -08:00
Jonathan Ong 18c2cd1dac this.originalUrl && this.request.originalUrl 2013-11-14 14:18:05 -08:00
TJ Holowaychuk 35a0c1d2bb add {request,response,context}#toJSON() 2013-11-14 11:30:56 -08:00
Jonathan Ong 0be1442111 expose app-specific prototypes, cleanup/fix tests 2013-11-13 18:41:40 -08:00
TJ Holowaychuk c699c75c52 add koa Request / Response objects and delegation. Closes #52 2013-11-13 09:01:15 -08:00
Jonathan Ong ee6dce83af ctx.redirect(): only set status code if not already a valid redirect status code
specifically 3xx codes except for 304. closes #66
2013-11-08 16:25:03 -08:00
TJ Holowaychuk 3dd172d032 remove content-negotiation accessor methods, replace with method equivalents 2013-11-08 15:16:51 -08:00
TJ Holowaychuk cf580dbaf3 remove trailer methods
less common than .auth which we removed as well but we can
add them back if it becomes a common request
2013-11-08 14:40:58 -08:00
TJ Holowaychuk 8b64343813 remove a few redundant methods for header field values 2013-11-08 14:39:20 -08:00
TJ Holowaychuk 770183771e add docs for .headersSent alias 2013-11-08 14:38:35 -08:00
TJ Holowaychuk c1bed668bd remove app.context() for now
get away from promoting the extension of prototypes, aside
from it looking better there isnt really a compelling reason
to allow this
2013-11-07 17:05:26 -08:00
Jonathan Ong f961647377 add additional node.js aliases 2013-10-23 23:54:07 -07:00
Jonathan Ong fbfeffa090 statusCode alias for status
for node
2013-10-23 23:44:22 -07:00
Jonathan Ong 6492f2ca4a headersSent alias for headerSent
i like keeping things as similar to node as possible :)
2013-10-23 22:38:06 -07:00
TJ Holowaychuk 3b2c55b68b add overriding to application/json on ctx.body=object
since it cant be anything else, but if you have middleware that transforms
the object to xml or something then you could set ctx.type=
2013-10-10 12:48:14 -07:00
TJ Holowaychuk 3b7a7b5047 Merge pull request #58 from jonathanong/set-body-length
set length on body override
2013-10-10 12:41:41 -07:00
Jonathan Ong 50d73e3709 onerror: check existence of error 2013-10-08 23:23:14 -07:00
Jonathan Ong 0e829c17ad set length on body override 2013-10-05 12:31:48 -07:00
Jonathan Ong 4aa75a1164 cleanup trailing whitespace in .js files 2013-10-05 12:27:15 -07:00
TJ Holowaychuk 83fd83aaf8 fix ctx.body= content-type override check. Thanks @jonathanong 2013-09-15 08:51:56 -07:00
TJ Holowaychuk 11913f5e4e add ctx.body= setter
this prevents a bunch of redundant checks that middleware may need to
check response length, type etc. the less code floating around based
on our supported response body types the better, giving us more freedom
to change these as needed, and just less error-prone code in general.
2013-09-14 15:54:17 -07:00
TJ Holowaychuk 04f4d72692 add charset support to ctx.type= 2013-09-14 14:48:33 -07:00
TJ Holowaychuk 167530a9e6 add a todo 2013-09-13 21:06:16 -07:00