arnaucode 112745d6fa | 8 years ago | |
---|---|---|
.. | ||
HISTORY.md | 8 years ago | |
LICENSE | 8 years ago | |
README.md | 8 years ago | |
index.js | 8 years ago | |
package.json | 8 years ago |
Higher level content negotation based on negotiator. Extracted from koa for general use.
In addition to negotatior, it allows:
(['text/html', 'application/json'])
as well as ('text/html', 'application/json')
.json
.false
when no types match*
var accepts = require('accepts')
http.createServer(function (req, res) {
var accept = accepts(req)
})
Returns all the explicitly accepted content property as an array in descending priority.
accept.types()
accept.encodings()
accept.charsets()
accept.languages()
They are also aliased in singular form such as accept.type()
. accept.languages()
is also aliased as accept.langs()
, etc.
Note: you should almost never do this in a real app as it defeats the purpose of content negotiation.
Example:
// in Google Chrome
var encodings = accept.encodings() // -> ['sdch', 'gzip', 'deflate']
Since you probably don't support sdch
, you should just supply the encodings you support:
var encoding = accept.encodings('gzip', 'deflate') // -> 'gzip', probably
You can either have values
be an array or have an argument list of values.
If the client does not accept any values
, false
will be returned.
If the client accepts any values
, the preferred value
will be return.
For accept.types()
, shorthand mime types are allowed.
Example:
// req.headers.accept = 'application/json'
accept.types('json') // -> 'json'
accept.types('html', 'json') // -> 'json'
accept.types('html') // -> false
// req.headers.accept = ''
// which is equivalent to `*`
accept.types() // -> [], no explicit types
accept.types('text/html', 'text/json') // -> 'text/html', since it was first