docs: add note about confusing context accessors

This commit is contained in:
Jonathan Ong 2014-02-13 18:23:45 -08:00
parent a9149f07ad
commit abb5686d5b

View file

@ -3,12 +3,8 @@
A Koa Context encapsulates node's `request` and `response` objects
into a single object which provides many helpful methods for writing
web applications and APIs.
Many accessors and methods simply delegate to their `ctx.request` or `ctx.response`
equivalents for convenience, and are otherwise identical.
These operations are used so frequently in HTTP server development
that they are added at this level, instead of a higher level framework,
that they are added at this level instead of a higher level framework,
which would force middleware to re-implement this common functionality.
A `Context` is created _per_ request, and is referenced in middleware
@ -23,6 +19,12 @@ app.use(function *(){
});
```
Many of the context's accessors and methods simply delegate to their `ctx.request` or `ctx.response`
equivalents for convenience, and are otherwise identical.
In general, getters are delegated to `ctx.request` and setters are delegated to `ctx.response`.
For example, `this.length` returns the request's `content-length`, whereas `this.length = 1024` sets the response's `content-length` to `1024`.
If this confuses you, simply use `ctx.request` or `ctx.response` directly.
## API
`Context` specific methods and accessors.