add charset support to ctx.type=
This commit is contained in:
parent
167530a9e6
commit
04f4d72692
3 changed files with 12 additions and 3 deletions
|
@ -275,12 +275,16 @@ var ct = this.type;
|
|||
Set response `Content-Type` via mime string or file extension.
|
||||
|
||||
```js
|
||||
this.type = 'text/plain; charset=utf-8';
|
||||
this.type = 'image/png';
|
||||
this.type = '.png';
|
||||
this.type = 'png';
|
||||
```
|
||||
|
||||
__NOTE__: when `ctx.body` is an object the content-type is set for you.
|
||||
Note: when appropriate a `charset` is selected for you, for
|
||||
example `ctx.type = 'html'` will default to "utf-8", however
|
||||
when explicitly defined in full as `ctx.type = 'text/html'`
|
||||
no charset is assigned.
|
||||
|
||||
### ctx.url
|
||||
|
||||
|
|
|
@ -743,7 +743,12 @@ module.exports = {
|
|||
*/
|
||||
|
||||
set type(type){
|
||||
if (!~type.indexOf('/')) type = mime.lookup(type);
|
||||
if (!~type.indexOf('/')) {
|
||||
type = mime.lookup(type);
|
||||
var cs = mime.charsets.lookup(type);
|
||||
if (cs) type += '; charset=' + cs.toLowerCase();
|
||||
}
|
||||
|
||||
this.set('Content-Type', type);
|
||||
},
|
||||
|
||||
|
|
|
@ -177,7 +177,7 @@ describe('app.respond', function(){
|
|||
|
||||
request(server)
|
||||
.get('/')
|
||||
.expect('Content-Type', 'text/plain')
|
||||
.expect('Content-Type', 'text/plain; charset=utf-8')
|
||||
.expect(404)
|
||||
.end(done);
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue