accepts
Higher level content negotation based on negotiator. Extracted from koa for general use.
In addition to negotatior, it allows:
- Allows types as an array or arguments list, ie
(['text/html', 'application/json'])
as well as ('text/html', 'application/json')
. - Allows type shorthands such as
json
. - Returns
false
when no types match - Treats non-existent headers as
*
API
var accept = new Accepts(req)
var accepts = require('accepts')
http.createServer(function (req, res) {
var accept = accepts(req)
})
accept[property]()
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:
var encodings = accept.encodings()
Since you probably don't support sdch
, you should just supply the encodings you support:
var encoding = accept.encodings('gzip', 'deflate')
accept[property](values, ...)
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:
accept.types('json')
accept.types('html', 'json')
accept.types('html')
accept.types()
accept.types('text/html', 'text/json')
License
MIT