Accept
Accept parses all accept header fields and sorts them according to the HTTP specification.
Supported Header Fields
Accept
Parsed into req.accept.types
.
Accept-Charset
Parsed into req.accept.charsets
.
Accept-Encoding
Parsed into req.accept.encodings
.
Accept-Language
Parsed into req.accept.languages
.
Accept-Ranges
Parsed into req.accept.ranges
.
Installation
npm install http-accept
Usage
Just require 'http-accept'
and throw it into a connect compatible middlware
stack.
connect = require 'connect'http = require 'http'accept = require 'http-accept' app = connectappuse connectlogger 'dev'appuse acceptappuse consolelog reqaccept resend applisten 3000
A request from a browser on http://localhost:3000
would print out
types: type: 'text' subtype: 'html' params: {} mediarange: 'text/html' quality: 1 type: 'application' subtype: 'xhtml+xml' params: {} mediarange: 'application/xhtml+xml' quality: 1 type: 'application' subtype: 'xml' params: Object mediarange: 'application/xml' quality: 09 type: '*' subtype: '*' params: Object mediarange: '*/*' quality: 08 charsets: undefined encodings: 'gzip' 'deflate' languages: 'de-de' 'de' 'en-us' 'en' ranges: undefined
For each header present in the request, there is also a getBestMatch
method which will find the highest quality match amongst the supplied candidates.
encoding = reqacceptencodings?getBestMatch "gzip""deflate" ? "identity"mediaType = reqaccepttypes?getBestMatch "text/html""application/json" "application/xml"