root / HServer / 00.Server / 00.Program / node_modules / accepts / README.md
이력 | 보기 | 이력해설 | 다운로드 (4.03 KB)
1 |
# accepts |
---|---|
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 |
Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). |
10 |
Extracted from [koa](https://www.npmjs.com/package/koa) for general use. |
11 |
|
12 |
In addition to negotiator, it allows: |
13 |
|
14 |
- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` |
15 |
as well as `('text/html', 'application/json')`. |
16 |
- Allows type shorthands such as `json`. |
17 |
- Returns `false` when no types match |
18 |
- Treats non-existent headers as `*` |
19 |
|
20 |
## Installation |
21 |
|
22 |
This is a [Node.js](https://nodejs.org/en/) module available through the |
23 |
[npm registry](https://www.npmjs.com/). Installation is done using the |
24 |
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): |
25 |
|
26 |
```sh |
27 |
$ npm install accepts |
28 |
``` |
29 |
|
30 |
## API |
31 |
|
32 |
<!-- eslint-disable no-unused-vars --> |
33 |
|
34 |
```js |
35 |
var accepts = require('accepts') |
36 |
``` |
37 |
|
38 |
### accepts(req) |
39 |
|
40 |
Create a new `Accepts` object for the given `req`. |
41 |
|
42 |
#### .charset(charsets) |
43 |
|
44 |
Return the first accepted charset. If nothing in `charsets` is accepted, |
45 |
then `false` is returned. |
46 |
|
47 |
#### .charsets() |
48 |
|
49 |
Return the charsets that the request accepts, in the order of the client's |
50 |
preference (most preferred first). |
51 |
|
52 |
#### .encoding(encodings) |
53 |
|
54 |
Return the first accepted encoding. If nothing in `encodings` is accepted, |
55 |
then `false` is returned. |
56 |
|
57 |
#### .encodings() |
58 |
|
59 |
Return the encodings that the request accepts, in the order of the client's |
60 |
preference (most preferred first). |
61 |
|
62 |
#### .language(languages) |
63 |
|
64 |
Return the first accepted language. If nothing in `languages` is accepted, |
65 |
then `false` is returned. |
66 |
|
67 |
#### .languages() |
68 |
|
69 |
Return the languages that the request accepts, in the order of the client's |
70 |
preference (most preferred first). |
71 |
|
72 |
#### .type(types) |
73 |
|
74 |
Return the first accepted type (and it is returned as the same text as what |
75 |
appears in the `types` array). If nothing in `types` is accepted, then `false` |
76 |
is returned. |
77 |
|
78 |
The `types` array can contain full MIME types or file extensions. Any value |
79 |
that is not a full MIME types is passed to `require('mime-types').lookup`. |
80 |
|
81 |
#### .types() |
82 |
|
83 |
Return the types that the request accepts, in the order of the client's |
84 |
preference (most preferred first). |
85 |
|
86 |
## Examples |
87 |
|
88 |
### Simple type negotiation |
89 |
|
90 |
This simple example shows how to use `accepts` to return a different typed |
91 |
respond body based on what the client wants to accept. The server lists it's |
92 |
preferences in order and will get back the best match between the client and |
93 |
server. |
94 |
|
95 |
```js |
96 |
var accepts = require('accepts') |
97 |
var http = require('http') |
98 |
|
99 |
function app (req, res) { |
100 |
var accept = accepts(req) |
101 |
|
102 |
// the order of this list is significant; should be server preferred order |
103 |
switch (accept.type(['json', 'html'])) { |
104 |
case 'json': |
105 |
res.setHeader('Content-Type', 'application/json') |
106 |
res.write('{"hello":"world!"}') |
107 |
break |
108 |
case 'html': |
109 |
res.setHeader('Content-Type', 'text/html') |
110 |
res.write('<b>hello, world!</b>') |
111 |
break |
112 |
default: |
113 |
// the fallback is text/plain, so no need to specify it above |
114 |
res.setHeader('Content-Type', 'text/plain') |
115 |
res.write('hello, world!') |
116 |
break |
117 |
} |
118 |
|
119 |
res.end() |
120 |
} |
121 |
|
122 |
http.createServer(app).listen(3000) |
123 |
``` |
124 |
|
125 |
You can test this out with the cURL program: |
126 |
```sh |
127 |
curl -I -H'Accept: text/html' http://localhost:3000/ |
128 |
``` |
129 |
|
130 |
## License |
131 |
|
132 |
[MIT](LICENSE) |
133 |
|
134 |
[npm-image]: https://img.shields.io/npm/v/accepts.svg |
135 |
[npm-url]: https://npmjs.org/package/accepts |
136 |
[node-version-image]: https://img.shields.io/node/v/accepts.svg |
137 |
[node-version-url]: https://nodejs.org/en/download/ |
138 |
[travis-image]: https://img.shields.io/travis/jshttp/accepts/master.svg |
139 |
[travis-url]: https://travis-ci.org/jshttp/accepts |
140 |
[coveralls-image]: https://img.shields.io/coveralls/jshttp/accepts/master.svg |
141 |
[coveralls-url]: https://coveralls.io/r/jshttp/accepts |
142 |
[downloads-image]: https://img.shields.io/npm/dm/accepts.svg |
143 |
[downloads-url]: https://npmjs.org/package/accepts |