谈判代表
一个用于Node.js的HTTP内容协商器
安装
$ npm install negotiator
API
var Negotiator = require('negotiator')
接受谈判
availableMediaTypes = ['text/html', 'text/plain', 'application/json']
// The negotiator constructor receives a request object
negotiator = new Negotiator(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'
您可以在 examples/accept.js。
方法
mediaType ()
从客户端返回最喜欢的媒体类型。
mediaType (availableMediaType)
从可用媒体类型列表中返回最首选的媒体类型。
媒体类型()
返回按客户端首选项排序的首选媒体类型数组。
媒体类型(availableMediaTypes)
的列表中按优先级排序的首选媒体类型数组 可用的媒体类型。
接收语言谈判
negotiator = new Negotiator(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'
您可以在 examples/language.js。
方法
语言()
从客户端返回首选语言。
语言(availableLanguages)
从可用语言列表中返回最首选的语言。
语言()
返回按客户端首选项排序的首选语言数组。
语言(availableLanguages)
的列表中按优先级排序的首选语言数组 可用的语言。
Accept-Charset谈判
availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5']
negotiator = new Negotiator(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'
您可以在 examples/charset.js。
方法
字符集()
从客户端返回最喜欢的字符集。
字符集(availableCharsets)
从可用字符集列表中返回最受欢迎的字符集。
数据集()
返回按客户端首选项排序的首选字符集数组。
数据集(availableCharsets)
的列表中按优先级排序的首选字符集数组 可用的数据集。
接受编码谈判
availableEncodings = ['identity', 'gzip']
negotiator = new Negotiator(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'
您可以在 examples/encoding.js。
方法
编码()
从客户端返回最优选的编码。
编码(availableEncodings)
从可用编码列表中返回最首选的编码。
encoding(availableEncodings, {preferred})
返回可用编码列表中最受欢迎的编码,同时根据 preferred 相同质量编码之间的数组。
编码()
返回按客户端首选项排序的首选编码数组。
编码(availableEncodings)
的列表中按优先级排序的首选编码数组 可用的编码。
encodings(availableEncodings, {preferred})
的列表中按优先级排序的首选编码数组
可用的编码,而优先级基于 preferred 相同质量编码之间的数组。
看到也
这个 接受 模块建立在 该模块并提供了一个替代接口,mime类型验证, 和更多。