add request.charset
This commit is contained in:
parent
94413b1bd4
commit
785aba879c
3 changed files with 53 additions and 0 deletions
|
@ -73,6 +73,15 @@ var ct = this.type;
|
|||
// => "image/png"
|
||||
```
|
||||
|
||||
### res.charset
|
||||
|
||||
Get request charset when present, or `undefined`:
|
||||
|
||||
```js
|
||||
this.charset
|
||||
// => "utf-8"
|
||||
```
|
||||
|
||||
### req.query
|
||||
|
||||
Get parsed query-string, returning an empty object when no
|
||||
|
|
|
@ -261,6 +261,22 @@ module.exports = {
|
|||
return this.req.socket;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the charset when present or undefined.
|
||||
*
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
get charset() {
|
||||
// TODO: lame, we could have a generic param parsing lib
|
||||
var type = this.get('Content-Type');
|
||||
if (!type) return;
|
||||
|
||||
var m = type.match(/charset *= *(\S+)/);
|
||||
if (m) return m[1];
|
||||
},
|
||||
|
||||
/**
|
||||
* Return parsed Content-Length when present.
|
||||
*
|
||||
|
|
28
test/request/charset.js
Normal file
28
test/request/charset.js
Normal file
|
@ -0,0 +1,28 @@
|
|||
|
||||
var request = require('../context').request;
|
||||
var assert = require('assert');
|
||||
|
||||
describe('req.charset', function(){
|
||||
describe('with no content-type present', function(){
|
||||
it('should return null', function(){
|
||||
var req = request();
|
||||
assert(null == req.charset);
|
||||
})
|
||||
})
|
||||
|
||||
describe('with charset present', function(){
|
||||
it('should return null', function(){
|
||||
var req = request();
|
||||
req.header['content-type'] = 'text/plain';
|
||||
assert(null == req.charset);
|
||||
})
|
||||
})
|
||||
|
||||
describe('with a charset', function(){
|
||||
it('should return the charset', function(){
|
||||
var req = request();
|
||||
req.header['content-type'] = 'text/plain; charset=utf-8';
|
||||
req.charset.should.equal('utf-8');
|
||||
})
|
||||
})
|
||||
})
|
Loading…
Reference in a new issue