Projekt

Obecné

Profil

Stáhnout (4.7 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
# negotiator
2
3
[![NPM Version][npm-image]][npm-url]
4
[![NPM Downloads][downloads-image]][downloads-url]
5
[![Node.js Version][node-version-image]][node-version-url]
6
[![Build Status][travis-image]][travis-url]
7
[![Test Coverage][coveralls-image]][coveralls-url]
8
9
An HTTP content negotiator for Node.js
10
11
## Installation
12
13
```sh
14
$ npm install negotiator
15
```
16
17
## API
18
19
```js
20
var Negotiator = require('negotiator')
21
```
22
23
### Accept Negotiation
24
25
```js
26
availableMediaTypes = ['text/html', 'text/plain', 'application/json']
27
28
// The negotiator constructor receives a request object
29
negotiator = new Negotiator(request)
30
31
// Let's say Accept header is 'text/html, application/*;q=0.2, image/jpeg;q=0.8'
32
33
negotiator.mediaTypes()
34
// -> ['text/html', 'image/jpeg', 'application/*']
35
36
negotiator.mediaTypes(availableMediaTypes)
37
// -> ['text/html', 'application/json']
38
39
negotiator.mediaType(availableMediaTypes)
40
// -> 'text/html'
41
```
42
43
You can check a working example at `examples/accept.js`.
44
45
#### Methods
46
47
##### mediaType()
48
49
Returns the most preferred media type from the client.
50
51
##### mediaType(availableMediaType)
52
53
Returns the most preferred media type from a list of available media types.
54
55
##### mediaTypes()
56
57
Returns an array of preferred media types ordered by the client preference.
58
59
##### mediaTypes(availableMediaTypes)
60
61
Returns an array of preferred media types ordered by priority from a list of
62
available media types.
63
64
### Accept-Language Negotiation
65
66
```js
67
negotiator = new Negotiator(request)
68
69
availableLanguages = ['en', 'es', 'fr']
70
71
// Let's say Accept-Language header is 'en;q=0.8, es, pt'
72
73
negotiator.languages()
74
// -> ['es', 'pt', 'en']
75
76
negotiator.languages(availableLanguages)
77
// -> ['es', 'en']
78
79
language = negotiator.language(availableLanguages)
80
// -> 'es'
81
```
82
83
You can check a working example at `examples/language.js`.
84
85
#### Methods
86
87
##### language()
88
89
Returns the most preferred language from the client.
90
91
##### language(availableLanguages)
92
93
Returns the most preferred language from a list of available languages.
94
95
##### languages()
96
97
Returns an array of preferred languages ordered by the client preference.
98
99
##### languages(availableLanguages)
100
101
Returns an array of preferred languages ordered by priority from a list of
102
available languages.
103
104
### Accept-Charset Negotiation
105
106
```js
107
availableCharsets = ['utf-8', 'iso-8859-1', 'iso-8859-5']
108
109
negotiator = new Negotiator(request)
110
111
// Let's say Accept-Charset header is 'utf-8, iso-8859-1;q=0.8, utf-7;q=0.2'
112
113
negotiator.charsets()
114
// -> ['utf-8', 'iso-8859-1', 'utf-7']
115
116
negotiator.charsets(availableCharsets)
117
// -> ['utf-8', 'iso-8859-1']
118
119
negotiator.charset(availableCharsets)
120
// -> 'utf-8'
121
```
122
123
You can check a working example at `examples/charset.js`.
124
125
#### Methods
126
127
##### charset()
128
129
Returns the most preferred charset from the client.
130
131
##### charset(availableCharsets)
132
133
Returns the most preferred charset from a list of available charsets.
134
135
##### charsets()
136
137
Returns an array of preferred charsets ordered by the client preference.
138
139
##### charsets(availableCharsets)
140
141
Returns an array of preferred charsets ordered by priority from a list of
142
available charsets.
143
144
### Accept-Encoding Negotiation
145
146
```js
147
availableEncodings = ['identity', 'gzip']
148
149
negotiator = new Negotiator(request)
150
151
// Let's say Accept-Encoding header is 'gzip, compress;q=0.2, identity;q=0.5'
152
153
negotiator.encodings()
154
// -> ['gzip', 'identity', 'compress']
155
156
negotiator.encodings(availableEncodings)
157
// -> ['gzip', 'identity']
158
159
negotiator.encoding(availableEncodings)
160
// -> 'gzip'
161
```
162
163
You can check a working example at `examples/encoding.js`.
164
165
#### Methods
166
167
##### encoding()
168
169
Returns the most preferred encoding from the client.
170
171
##### encoding(availableEncodings)
172
173
Returns the most preferred encoding from a list of available encodings.
174
175
##### encodings()
176
177
Returns an array of preferred encodings ordered by the client preference.
178
179
##### encodings(availableEncodings)
180
181
Returns an array of preferred encodings ordered by priority from a list of
182
available encodings.
183
184
## See Also
185
186
The [accepts](https://npmjs.org/package/accepts#readme) module builds on
187
this module and provides an alternative interface, mime type validation,
188
and more.
189
190
## License
191
192
[MIT](LICENSE)
193
194
[npm-image]: https://img.shields.io/npm/v/negotiator.svg
195
[npm-url]: https://npmjs.org/package/negotiator
196
[node-version-image]: https://img.shields.io/node/v/negotiator.svg
197
[node-version-url]: https://nodejs.org/en/download/
198
[travis-image]: https://img.shields.io/travis/jshttp/negotiator/master.svg
199
[travis-url]: https://travis-ci.org/jshttp/negotiator
200
[coveralls-image]: https://img.shields.io/coveralls/jshttp/negotiator/master.svg
201
[coveralls-url]: https://coveralls.io/r/jshttp/negotiator?branch=master
202
[downloads-image]: https://img.shields.io/npm/dm/negotiator.svg
203
[downloads-url]: https://npmjs.org/package/negotiator