Commit Graph

242 Commits (master)

Author SHA1 Message Date
Bryan Bess 890244fc74 Fix typo 2015-09-26 09:23:17 -05:00
C.T. Lin 85860587cc implement ctx.origin 2015-09-20 23:49:37 +08:00
Jingwei "John" Liu b80007c460 fix a possible typo 2015-07-03 18:55:24 +08:00
Yazhong Liu 90b05c09e5 upgrade supertest to ^1.0.1 2015-05-24 12:39:53 +08:00
Aaron Heckmann 6392ee0407 return same object from request.query
Before this change, calling request.query when there was no querystring
resulted in a new object created and returned each time. If the resulting
object was ever changed, accessing request.query would not reflect it and
cause weird bugs.
2015-05-21 12:55:58 -07:00
dead_horse c8eb5eefb1 make sure helpers return strict string 2015-04-29 01:44:02 +08:00
dead_horse 1c5cb6f691 feat: alias response.headers to response.header 2015-04-23 17:28:31 +08:00
dead_horse b6aea969f8 non-error thrown, fixed #432 2015-04-14 10:34:55 +08:00
fengmk2 dd3a0fcdfa make sure req.host and req.hostname return strict string
Should return empty string when no host present.
2015-03-30 17:44:32 +08:00
fengmk2 1edd6ec69a test: improve test coverage for application and response 2015-03-29 14:40:09 +08:00
Jonathan Ong b721273682 rename 6to5 to babel 2015-02-15 16:47:18 -08:00
Jonathan Ong c5545cd918 add experimental async function support 2015-02-14 17:33:08 -08:00
Jesús Rodríguez Rodríguez 8d1a340789 Fix typo on response.body test.
Just a small typo.
2015-01-29 15:39:06 -08:00
Jesus Rodriguez 68843e0cb3 Remove unused imports and exports 2015-01-29 15:39:06 -08:00
dead_horse 5a3f32dfdd Add res.append(field, val) to append headers 2015-01-26 02:20:08 +08:00
fengmk2 3e66157472 ctx.request.href: get full request url, include `protocol`, `host` and `originalUrl`
Useful on those scenes need current full request url, like `OAuth`.
2014-12-27 14:17:00 -08:00
HanHor Wu a04183aae0 remove the 'x-powered-by' in context test since it has been removed 2014-12-08 09:39:51 +08:00
TJ Holowaychuk e4076ce930 remove x-powered-by. Closes #372 2014-12-04 01:01:57 -08:00
dead_horse 57eb6a10df set content-type for redirect when accpect plain 2014-11-27 09:25:44 -08:00
Matthew Mueller 6847fe68bd added: ctx.state as the recommended namespace for passing information through middleware and routes. 2014-11-18 00:54:14 -08:00
dead_horse 193eadbdb5 add the missing semicolon 2014-11-16 23:18:37 +08:00
dead_horse eff4886cd8 ocd 2014-11-16 21:52:14 +08:00
Yoshua Wuyts 9c98440c5c test/application: fix quotes
super minor style thing, but there's not reason not to PR so yeah. haha.
2014-10-31 20:15:45 +01:00
TJ Holowaychuk eb443d1bee Merge pull request #353 from dead-horse/status
custom status
2014-10-09 09:05:26 -07:00
dead_horse efdd7d3716 less strict for status, close #350
add res.message[=]
2014-10-09 23:20:53 +08:00
dead_horse 065a773e65 more test case 2014-10-01 20:42:29 +08:00
Jonathan Ong 2f0fe55ae3 .throw() -> http-errors, .assert() -> http-assert 2014-09-20 10:46:28 -07:00
fengmk2 cca2438f64 ctx.attachment support no-ascii filename 2014-09-19 13:46:08 +08:00
Tiago Ribeiro a85f580983 Add full coverage 2014-09-08 23:53:46 +01:00
Jonathan Ong 9455726c00 finished -> on-finished
removes the writable test because it’s fake and there are tests for
on-finished for this case
2014-08-16 02:58:06 -07:00
Ian Storm Taylor dc0c35471c support errors and update docs 2014-08-12 13:22:33 -07:00
Ian Storm Taylor 5931714bd8 make the second argument to throw properly optional 2014-08-12 13:19:14 -07:00
dead_horse f6626967b2 ignore props.status in ctx.throw 2014-08-09 13:38:54 +08:00
Ian Storm Taylor bcac468f7c add the ability to pass `props` to `context.throw` 2014-08-08 12:37:04 -07:00
TJ Holowaychuk f9eb219ecf Merge pull request #330 from dead-horse/onerror-status
Onerror status
2014-08-07 19:04:10 -07:00
dead_horse fa5948cca3 do not expose when err.status not valid 2014-08-08 10:02:24 +08:00
dead_horse 5ca9f451a7 alias request.headers as request.header 2014-08-07 00:04:21 +08:00
dead_horse e2f61595b8 fix err.status invalid lead to uncaughtException 2014-08-06 21:32:35 +08:00
Jonathan Ong 19a9ef76e5 fix test for new mime-types 2014-08-04 13:28:29 -07:00
dead_horse 5b18f8bab0 parse req.type by media-typer 2014-07-09 23:52:56 +08:00
dead_horse e791100993 add more test case, fix req.idempotent 2014-07-06 16:52:02 +08:00
Jonathan Ong 31ba115231 res: add .is() 2014-06-13 00:30:59 -07:00
tmilewski c2322f2b3d remove .status=string #298 2014-06-10 16:38:25 -04:00
TJ Holowaychuk 63a4297084 Merge pull request #291 from koajs/vary
remove response.append(), use vary module
2014-06-06 23:00:39 -07:00
Jonathan Ong 1a32ecac31 fix res.type= for unknown types
because we changed from mime to mime-types. ideally, we should just not
set the content-type, but this way it’s backwards compatible. we can
change it later.
2014-06-06 16:26:03 -07:00
Jonathan Ong fdbd16acc3 remove response.append(), use vary module 2014-06-05 16:06:15 -07:00
Jonathan Ong 008f0554c6 set-type -> mime-types
removes mime dependencies from the dep tree.
liberally sets charset because some express users complained about bad
browsers using the default charset.
2014-06-03 21:44:25 -07:00
Jonathan Ong 11cf47c8a6 remove .request accept tests the fail
due to
https://github.com/expressjs/accepts/commit/5975ce464575bd0fddfdd3d41796
958cd6bfc20b. passing nothing into accepts() is silly anyways.
2014-06-03 21:35:11 -07:00
dead_horse f76268ba58 remove req.host=, fix docs 2014-05-05 12:45:33 +08:00
TJ Holowaychuk f17629d19f remove .outputErrors, suppress output when handled by the dev. Closes #272 2014-05-01 16:29:37 -07:00
TJ Holowaychuk 15ab936001 change .status default to 404. Closes #263 2014-04-28 21:17:46 -07:00
dead_horse 48ac0669c5 fix content-length when body is re-assigned. Closes #267 2014-04-28 20:34:26 -07:00
dead_horse 6a2ed3e6eb assert object type in ctx.onerror 2014-04-25 08:34:11 +08:00
TJ Holowaychuk 4e44c1c49e add buffer HEAD support tests 2014-04-15 08:38:32 -07:00
TJ Holowaychuk 9a45d07fea add string HEAD support test 2014-04-15 08:37:48 -07:00
dead_horse b06bb3cb85 simplify respond 2014-04-15 23:31:11 +08:00
TJ Holowaychuk 95a78c3a44 Merge pull request #255 from dead-horse/stream-body
make sure all intermediate stream bodies will be destroy
2014-04-14 15:34:13 -07:00
dead_horse 69c82f63b5 fix length when .body is missing 2014-04-13 11:35:28 +08:00
dead_horse 64aad129d3 fix this.status= in this.body
fix default status set bug in this.body=null.
do not call this.status= if this.status exist.
make sure empty content status remove content headers
2014-04-10 11:47:30 +08:00
TJ Holowaychuk 3d8ab61fa1 change res.type= to always default charset. Closes #252 2014-04-09 09:34:50 -07:00
dead_horse 329d2b94db make sure all intermediate stream bodies will be destroy and have error handle 2014-04-10 00:02:13 +08:00
Dmitry Mazuro 9e8d6a3aa0 ocd 2014-03-24 21:21:15 +03:00
Jonathan Ong 52cb57cc7e fix overwriting of content-type w/ HEAD requests 2014-03-23 04:01:14 -07:00
Jonathan Ong 182f9d6fa4 refactor: use statuses 2014-03-12 18:29:14 -07:00
TJ Holowaychuk 9b1651a8e6 fix inspection of app. Closes #108 2014-03-11 11:06:57 -07:00
TJ Holowaychuk 895cf4040c add app.toJSON() 2014-03-11 11:01:33 -07:00
TJ Holowaychuk f0e353d6a0 fix some tests that never worked 2014-03-11 10:50:34 -07: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 785aba879c add request.charset 2014-02-14 09:38:59 -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 c7ff0e2ac1 response.body: fix html content sniffing for strings
closes #214
2014-02-13 18:35:25 -08:00
TJ Holowaychuk aa08845c70 remove app.jsonSpaces setting. Closes #202 2014-01-31 18:39:47 -08:00
TJ Holowaychuk 3a50280445 Merge pull request #200 from koajs/fix/ctx.onerror
context.onerror: fix response handling
2014-01-24 15:03:02 -08:00
Jonathan Ong 2bc3bb7327 this.respond=false for bypassing koa's response handling
closes #198
2014-01-24 14:38:40 -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
Jonathan Ong 7e66aca8c3 better content negotiation docs
closes #193
2014-01-18 14:22:53 -08:00
jeromew 93351bf845 Add req.host= 2014-01-07 21:09:01 +00:00
Veselin Todorov 6cd4c776f8 context.throw supports Error instances 2014-01-04 10:28:24 +02:00
Jonathan Ong b7b1c0fd44 better 404 handling 2013-12-29 22:26:19 -08:00
Jonathan Ong 20615b808d refactor: move .is to type-is 2013-12-27 18:56:09 -08:00
Jonathan Ong 23548b6c97 test: add a test case for *respond !socket.writable
https://github.com/koajs/koa/commit/9fe483ca767b64de3e9b9e2c78b7bfaf4208
61c2#diff-5372f626ee15242f1e2c6eb31655b4faR187
2013-12-25 00:13:54 -08:00
mako-taco 9fe483ca76 handle manually written responses 2013-12-22 14:46:36 -08:00
TJ Holowaychuk 87c03aff61 add support for .throw(status, msg). Closes #130 2013-12-20 15:34:16 -08:00
TJ Holowaychuk 5c50b6d0b3 rename error.js to throw.js 2013-12-20 15:32:02 -08:00
TJ Holowaychuk 70971dcb53 add GeneratorFunction assertion for app.use(). Closes #120
breaks old old shit but thats ok, super early in the game
2013-12-19 10:03:08 -08:00
TJ Holowaychuk 1769f9c431 add socket error-handling. Closes #114 2013-12-17 17:37:35 -08:00
TJ Holowaychuk e78349a73d refactor ctx.toJSON() to recurse. Closes #108 2013-12-02 09:08:01 -08:00
TJ Holowaychuk a2582e7aa3 change req.is() to return the canonical mime type 2013-11-28 12:47:23 -08:00
Jonathan Ong 8717a3ad2b req.is(): make better
closes #105 and #106
2013-11-28 00:13:16 -08:00
Jonathan Ong e447e731b6 req.acceptsLanguage - default to first type fi header not set 2013-11-26 14:52:24 -08:00
Jonathan Ong c24ab00b23 req.acceptsCharsets - default to first type if header not set 2013-11-26 14:49:07 -08:00
TJ Holowaychuk 8e10f12d38 add ctx.remove() and res.remove(). Closes #100 2013-11-24 05:06:35 -08:00
Jonathan Ong 1d38d4acd1 req.accepts: default to first 'type' 2013-11-20 18:00:24 -08:00
Jonathan Ong 5ae3f4eb30 req.acceptsEncodings: default to 'identity' 2013-11-20 17:46:11 -08:00
Jonathan Ong 1dd1d02db0 app.respond: support 205 status codes as no-content
pretty new to me, but it’s basically the same as 204
2013-11-19 22:20:17 -08:00
Jonathan Ong 16b016f61f tests: add a 200 HEAD test
purpose of this test is to explictly show how to send a 200 response
when a body is not expected (ie HEAD)
2013-11-19 11:11:26 -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 458c5ccfd2 bump deps 2013-11-15 17:11:12 -08:00
Jonathan Ong 0362c8e457 add app.keys support 2013-11-15 10:04:07 -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
TJ Holowaychuk d9940c1931 fix 2 test requires 2013-11-14 11:23:59 -08:00
TJ Holowaychuk 64fa0b5c2a Merge pull request #85 from koajs/expose-proto
Expose proto
2013-11-14 11:23:10 -08:00
Jonathan Ong e51e85e0fc response.etag: remove getter for now
until we figure out a good way to return both weak and strong validators
2013-11-13 21:04:40 -08:00
Jonathan Ong 2f74207e6c response.etag and response.lastModified 2013-11-13 19:59:49 -08:00
Jonathan Ong e6cd31ce2f add tests for exposing app-specific prototypes 2013-11-13 18:41:40 -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
Jonathan Ong 836679c610 another negotiator 3.0 fix 2013-11-08 14:19:25 -08:00
Jonathan Ong a129d41cc1 fix negotiator 3.0 change
i'm not sure if this is incorrect. people should use `accepts()`
anyways.
2013-11-08 14:09:52 -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
TJ Holowaychuk 2d35cdff50 add new style middleware support through @jonathanong's koa-compose patch 2013-11-07 16:15:47 -08: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 c4d194488c fix test label typo 2013-10-10 12:42:58 -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 fc25b79b99 add err.expose check for response handler to expose the err.message 2013-09-12 08:05:50 -07:00
TJ Holowaychuk 091d5010cd add ENOENT err.code support for 404 2013-09-08 12:11:02 -07:00
TJ Holowaychuk 228c38cf3e fix text/plain response for 500 errors 2013-09-08 12:07:50 -07:00
TJ Holowaychuk 92b741ac0a remove socket error handling, use server "clientError" 2013-09-08 11:44:45 -07:00
TJ Holowaychuk 2fe83a4e3d add failing socket error handling test 2013-09-08 11:41:43 -07:00
TJ Holowaychuk 42f5aa1e61 add app "error" test 2013-09-08 09:37:19 -07:00
TJ Holowaychuk 3758f4b675 use app.listen() in tests 2013-09-01 15:07:54 -07:00
TJ Holowaychuk ad0dd3cc39 add Context#error(). Closes #31 2013-08-27 20:54:13 -07:00
TJ Holowaychuk 6fb32165e3 fix .status= case sensitivity 2013-08-22 21:10:59 -07:00
TJ Holowaychuk 2de010ca47 add err.status support. Closes #20 2013-08-21 19:47:56 -07:00
TJ Holowaychuk e24334e820 add test for 304 as well 2013-08-20 21:30:55 -07:00
TJ Holowaychuk 1457a3df0f add striping of Content-* fields when 204 / 304. Closes #21 2013-08-20 21:24:18 -07:00
TJ Holowaychuk 3d92717b7a remove Context#auth. Closes #26 2013-08-19 18:24:17 -07:00
TJ Holowaychuk d9e8bb711e misc 2013-08-18 11:16:02 -07:00
Jonathan Ong 978f581099 app.context: extend the context with your own properties 2013-08-17 16:58:53 -07:00
TJ Holowaychuk 9e167c5ed9 Initial commit 2013-08-17 00:15:57 -07:00