Projekt

Obecné

Profil

Stáhnout (2.65 KB) Statistiky
| Větev: | Revize:
1
# vary
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
Manipulate the HTTP Vary header
10

    
11
## Installation
12

    
13
This is a [Node.js](https://nodejs.org/en/) module available through the
14
[npm registry](https://www.npmjs.com/). Installation is done using the
15
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): 
16

    
17
```sh
18
$ npm install vary
19
```
20

    
21
## API
22

    
23
<!-- eslint-disable no-unused-vars -->
24

    
25
```js
26
var vary = require('vary')
27
```
28

    
29
### vary(res, field)
30

    
31
Adds the given header `field` to the `Vary` response header of `res`.
32
This can be a string of a single field, a string of a valid `Vary`
33
header, or an array of multiple fields.
34

    
35
This will append the header if not already listed, otherwise leaves
36
it listed in the current location.
37

    
38
<!-- eslint-disable no-undef -->
39

    
40
```js
41
// Append "Origin" to the Vary header of the response
42
vary(res, 'Origin')
43
```
44

    
45
### vary.append(header, field)
46

    
47
Adds the given header `field` to the `Vary` response header string `header`.
48
This can be a string of a single field, a string of a valid `Vary` header,
49
or an array of multiple fields.
50

    
51
This will append the header if not already listed, otherwise leaves
52
it listed in the current location. The new header string is returned.
53

    
54
<!-- eslint-disable no-undef -->
55

    
56
```js
57
// Get header string appending "Origin" to "Accept, User-Agent"
58
vary.append('Accept, User-Agent', 'Origin')
59
```
60

    
61
## Examples
62

    
63
### Updating the Vary header when content is based on it
64

    
65
```js
66
var http = require('http')
67
var vary = require('vary')
68

    
69
http.createServer(function onRequest (req, res) {
70
  // about to user-agent sniff
71
  vary(res, 'User-Agent')
72

    
73
  var ua = req.headers['user-agent'] || ''
74
  var isMobile = /mobi|android|touch|mini/i.test(ua)
75

    
76
  // serve site, depending on isMobile
77
  res.setHeader('Content-Type', 'text/html')
78
  res.end('You are (probably) ' + (isMobile ? '' : 'not ') + 'a mobile user')
79
})
80
```
81

    
82
## Testing
83

    
84
```sh
85
$ npm test
86
```
87

    
88
## License
89

    
90
[MIT](LICENSE)
91

    
92
[npm-image]: https://img.shields.io/npm/v/vary.svg
93
[npm-url]: https://npmjs.org/package/vary
94
[node-version-image]: https://img.shields.io/node/v/vary.svg
95
[node-version-url]: https://nodejs.org/en/download
96
[travis-image]: https://img.shields.io/travis/jshttp/vary/master.svg
97
[travis-url]: https://travis-ci.org/jshttp/vary
98
[coveralls-image]: https://img.shields.io/coveralls/jshttp/vary/master.svg
99
[coveralls-url]: https://coveralls.io/r/jshttp/vary
100
[downloads-image]: https://img.shields.io/npm/dm/vary.svg
101
[downloads-url]: https://npmjs.org/package/vary
(3-3/5)