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.
|
Set response `Content-Type` via mime string or file extension.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
this.type = 'text/plain; charset=utf-8';
|
||||||
this.type = 'image/png';
|
this.type = 'image/png';
|
||||||
this.type = '.png';
|
this.type = '.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
|
### ctx.url
|
||||||
|
|
||||||
|
|
|
@ -743,7 +743,12 @@ module.exports = {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
set type(type){
|
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);
|
this.set('Content-Type', type);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ describe('app.respond', function(){
|
||||||
|
|
||||||
request(server)
|
request(server)
|
||||||
.get('/')
|
.get('/')
|
||||||
.expect('Content-Type', 'text/plain')
|
.expect('Content-Type', 'text/plain; charset=utf-8')
|
||||||
.expect(404)
|
.expect(404)
|
||||||
.end(done);
|
.end(done);
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue