An HTTP content negotiator for Node.js
$ npm install negotiatorvarNegotiator=require('negotiator')availableMediaTypes=['text/html','text/plain','application/json']// The negotiator constructor receives a request objectnegotiator=newNegotiator(request)// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8'negotiator.mediaTypes()// -> ['text/html', 'image/jpeg', 'application/*']negotiator.mediaTypes(availableMediaTypes)// -> ['text/html', 'application/json']negotiator.mediaType(availableMediaTypes)// -> 'text/html'You can check a working example at examples/accept.js.
Returns the most preferred media type from the client.
Returns the most preferred media type from a list of available media types.
Returns an array of preferred media types ordered by the client preference.
Returns an array of preferred media types ordered by priority from a list of available media types.
negotiator=newNegotiator(request)availableLanguages=['en','es','fr']// Let's say Accept-Language header is 'en;q=0.8, es, pt'negotiator.languages()// -> ['es', 'pt', 'en']negotiator.languages(availableLanguages)// -> ['es', 'en']language=negotiator.language(availableLanguages)// -> 'es'You can check a working example at examples/language.js.
Returns the most preferred language from the client.
Returns the most preferred language from a list of available languages.
Returns an array of preferred languages ordered by the client preference.
Returns an array of preferred languages ordered by priority from a list of available languages.
availableCharsets=['utf-8','iso-8859-1','iso-8859-5']negotiator=newNegotiator(request)// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2'negotiator.charsets()// -> ['utf-8', 'iso-8859-1', 'utf-7']negotiator.charsets(availableCharsets)// -> ['utf-8', 'iso-8859-1']negotiator.charset(availableCharsets)// -> 'utf-8'You can check a working example at examples/charset.js.
Returns the most preferred charset from the client.
Returns the most preferred charset from a list of available charsets.
Returns an array of preferred charsets ordered by the client preference.
Returns an array of preferred charsets ordered by priority from a list of available charsets.
availableEncodings=['identity','gzip']negotiator=newNegotiator(request)// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5'negotiator.encodings()// -> ['gzip', 'identity', 'compress']negotiator.encodings(availableEncodings)// -> ['gzip', 'identity']negotiator.encoding(availableEncodings)// -> 'gzip'You can check a working example at examples/encoding.js.
Returns the most preferred encoding from the client.
Returns the most preferred encoding from a list of available encodings.
Returns the most preferred encoding from a list of available encodings, while prioritizing based on preferred array between same-quality encodings.
Returns an array of preferred encodings ordered by the client preference.
Returns an array of preferred encodings ordered by priority from a list of available encodings.
Returns an array of preferred encodings ordered by priority from a list of
available encodings, while prioritizing based on preferred array between same-quality encodings.
The accepts module builds on this module and provides an alternative interface, mime type validation, and more.