Mercurial > hg > nginx-site
annotate xml/en/docs/njs/njs_api.xml @ 2184:61b02846de24
Added release notes for njs 0.2.2.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 19 Jun 2018 15:43:45 +0300 |
parents | 97526b8346f4 |
children | 8e2b3aadc3ce |
rev | line source |
---|---|
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
1 <?xml version="1.0"?> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
2 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
3 <!-- |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
4 Copyright (C) Nginx, Inc. |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
5 --> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
6 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
8 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
9 <article name="njs API" |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
10 link="/en/docs/njs/njs_api.html" |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
11 lang="en" |
2176 | 12 rev="2"> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
13 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
14 <section id="summary"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
15 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
16 <para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
17 <link doc="../njs_about.xml">njs</link> provides objects, methods and properties |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
18 for extending nginx functionality. |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
19 </para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
20 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
21 </section> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
22 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
23 |
2176 | 24 <section id="core" name="Core"> |
25 | |
26 | |
27 <section id="core_json" name="JSON"> | |
28 | |
29 <para> | |
30 The <literal>JSON</literal> object (ES 5.1) provides functions | |
31 to convert njs values to and from JSON format. | |
32 <list type="tag"> | |
33 | |
34 <tag-name><literal>JSON.parse(<value>string</value>[, | |
35 <value>reviver</value>])</literal></tag-name> | |
36 <tag-desc> | |
37 Converts a <literal>string</literal> that represents JSON data | |
38 into an njs object (<literal>{...}</literal>) or | |
39 array (<literal>[...]</literal>). | |
40 The optional <literal>reviver</literal> parameter is a function (key, value) | |
41 that will be called for each (key,value) pair and can transform the value. | |
42 </tag-desc> | |
43 | |
44 <tag-name><literal>JSON.stringify(<value>value</value>[, | |
45 <value>replacer</value>] [, <value>space</value>])</literal></tag-name> | |
46 <tag-desc> | |
47 Converts an njs object back to JSON. | |
48 The obligatory <literal>value</literal> parameter is generally a JSON | |
49 <literal>object</literal> or <literal>array</literal> that will be converted. | |
50 If the value has a <literal>toJSON()</literal> method, | |
51 it defines how the object will be serialized. | |
52 The optional <literal>replacer</literal> parameter is | |
53 a <literal>function</literal> or <literal>array</literal> | |
54 that transforms results. | |
55 The optional <literal>space</literal> parameter is | |
56 a <literal>string</literal> or <literal>number</literal>. | |
57 If it is a <literal>number</literal>, | |
58 it indicates the number of white spaces placed before a result | |
59 (no more than 10). | |
60 If it is a <literal>string</literal>, | |
61 it is used as a white space (or first 10 characters of it). | |
62 If omitted or is <literal>null</literal>, no white space is used. | |
63 </tag-desc> | |
64 </list> | |
65 </para> | |
66 | |
67 <para> | |
68 <example> | |
69 >> var json = JSON.parse('{"a":1, "b":true}') | |
70 >> json.a | |
71 1 | |
72 | |
73 >> JSON.stringify(json) | |
74 {"a":1,"b":true} | |
75 | |
76 >> JSON.stringify(json, undefined, 1) | |
77 { | |
78 "a": 1, | |
79 "b": true | |
80 } | |
81 | |
82 >> JSON.stringify({ x: [10, undefined, function(){}] }) | |
83 {"x":[10,null,null]} | |
84 | |
85 >> JSON.stringify({"a":1, "toJSON": function() {return "xxx"}}) | |
86 "xxx" | |
87 | |
88 # Example with function replacer | |
89 | |
90 >> function replacer(key, value) {return (typeof value === 'string') ? undefined : value} | |
91 >>JSON.stringify({a:1, b:"b", c:true}, replacer) | |
92 {"a":1,"c":true} | |
93 </example> | |
94 </para> | |
95 | |
96 </section> | |
97 | |
2177 | 98 |
99 <section id="crypto" name="Crypto"> | |
100 | |
101 <para> | |
102 The Crypto module provides cryptographic functionality support. | |
103 The Crypto module object is returned by <literal>require('crypto')</literal>. | |
104 </para> | |
105 | |
106 <para> | |
107 <list type="tag"> | |
108 | |
109 <tag-name><literal>crypto.createHash(<value>algorithm</value>)</literal></tag-name> | |
110 <tag-desc> | |
111 Creates and returns a <link id="crypto_hash">Hash</link> object | |
112 that can be used to generate hash digests | |
113 using the given <value>algorithm</value>. | |
114 The algorighm can be | |
115 <literal>md5</literal>, | |
116 <literal>sha1</literal>, and | |
117 <literal>sha256</literal>. | |
118 </tag-desc> | |
119 | |
120 <tag-name><literal>crypto.createHmac(<value>algorithm</value>, | |
121 <value>secret key</value>)</literal></tag-name> | |
122 <tag-desc> | |
123 Creates and returns an <link id="crypto_hmac">HMAC</link> object | |
124 that uses the given <value>algorithm</value> and <value>secret key</value>. | |
125 The algorighm can be | |
126 <literal>md5</literal>, | |
127 <literal>sha1</literal>, and | |
128 <literal>sha256</literal>. | |
129 </tag-desc> | |
130 | |
131 </list> | |
132 </para> | |
133 | |
134 | |
135 <section id="crypto_hash" name="Hash"> | |
136 | |
137 <para> | |
138 <list type="tag"> | |
139 | |
140 <tag-name><literal>hash.update(<value>data</value>)</literal></tag-name> | |
141 <tag-desc> | |
142 Updates the hash content with the given <value>data</value>. | |
143 </tag-desc> | |
144 | |
145 <tag-name><literal>hash.digest([<value>encoding</value>])</literal></tag-name> | |
146 <tag-desc> | |
147 Calculates the digest of all of the data passed using | |
148 <literal>hash.update()</literal>. | |
149 The encoding can be | |
150 <literal>hex</literal>, | |
151 <literal>base64</literal>, and | |
152 <literal>base64url</literal>. | |
153 If encoding is not provided, a byte string is returned. | |
154 </tag-desc> | |
155 | |
156 </list> | |
157 </para> | |
158 | |
159 <para> | |
160 <example> | |
161 >> var cr = require('crypto') | |
162 undefined | |
163 | |
164 >> cr.createHash('sha1').update('A').update('B').digest('base64url') | |
165 BtlFlCqiamG-GMPiK_GbvKjdK10 | |
166 </example> | |
167 </para> | |
168 | |
169 </section> | |
170 | |
171 | |
172 <section id="crypto_hmac" name="HMAC"> | |
173 | |
174 <para> | |
175 <list type="tag"> | |
176 | |
177 <tag-name><literal>hmac.update(<value>data</value>)</literal></tag-name> | |
178 <tag-desc> | |
179 Updates the HMAC content with the given <value>data</value>. | |
180 </tag-desc> | |
181 | |
182 <tag-name><literal>hmac.digest([<value>encoding</value>])</literal></tag-name> | |
183 <tag-desc> | |
184 Calculates the HMAC digest of all of the data passed using | |
185 <literal>hmac.update()</literal>. | |
186 The encoding can be | |
187 <literal>hex</literal>, | |
188 <literal>base64</literal>, and | |
189 <literal>base64url</literal>. | |
190 If encoding is not provided, a byte string is returned. | |
191 </tag-desc> | |
192 </list> | |
193 </para> | |
194 | |
195 <para> | |
196 <example> | |
197 >> var cr = require('crypto') | |
198 undefined | |
199 | |
200 >> cr.createHmac('sha1', 'secret.key').update('AB').digest('base64url') | |
201 Oglm93xn23_MkiaEq_e9u8zk374 | |
202 </example> | |
203 </para> | |
204 | |
205 </section> | |
206 | |
207 </section> | |
208 | |
2176 | 209 </section> |
210 | |
211 | |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
212 <section id="http" name="HTTP"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
213 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
214 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
215 <section id="http_request" name="Request"> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
216 |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
217 <para> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
218 The <literal>HTTP</literal> object is available only in the |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
219 <link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> module. |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
220 </para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
221 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
222 <para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
223 <list type="tag"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
224 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
225 <tag-name><literal>r.args{}</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
226 <tag-desc> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
227 request arguments object, read-only |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
228 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
229 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
230 <tag-name><literal>r.error(<value>string</value>)</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
231 <tag-desc> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
232 writes a <literal>string</literal> to the error log |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
233 on the <literal>error</literal> level of logging |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
234 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
235 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
236 <tag-name><literal>r.finish()</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
237 <tag-desc> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
238 finishes sending a response to the client |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
239 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
240 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
241 <tag-name><literal>r.headersIn{}</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
242 <tag-desc> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
243 incoming headers object, read-only. |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
244 <para> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
245 For example, the <literal>Header-Name</literal> header |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
246 can be accessed with the syntax <literal>headers['Header-Name']</literal> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
247 or <literal>headers.Header_name</literal> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
248 </para> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
249 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
250 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
251 <tag-name><literal>r.headersOut{}</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
252 <tag-desc> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
253 outgoing headers object, writable. |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
254 <para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
255 For example, the <literal>Header-Name</literal> header |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
256 can be accessed with the syntax <literal>headers['Header-Name']</literal> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
257 or <literal>headers.Header_name</literal> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
258 </para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
259 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
260 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
261 <tag-name><literal>r.httpVersion</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
262 <tag-desc> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
263 HTTP version, read-only |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
264 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
265 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
266 <tag-name><literal>r.log(<value>string</value>)</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
267 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
268 writes a <literal>string</literal> to the error log |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
269 on the <literal>info</literal> level of logging |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
270 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
271 |
2183
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
272 <tag-name id="r_internal_redirect"><literal>r.internalRedirect(<value>uri</value>)</literal></tag-name> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
273 <tag-desc> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
274 performs an internal redirect to the specified <literal>uri</literal>. |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
275 If the uri starts with the “<literal>@</literal>” prefix, |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
276 it is considered a named location. |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
277 </tag-desc> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
278 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
279 <tag-name><literal>r.method</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
280 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
281 HTTP method, read-only |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
282 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
283 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
284 <tag-name><literal>r.parent</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
285 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
286 references the parent request object |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
287 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
288 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
289 <tag-name><literal>r.remoteAddress</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
290 <tag-desc> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
291 client address, read-only |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
292 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
293 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
294 <tag-name><literal>r.requestBody</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
295 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
296 holds the request body, read-only |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
297 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
298 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
299 <tag-name><literal>r.responseBody</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
300 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
301 holds the <link id="subrequest">subrequest</link> response body, read-only |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
302 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
303 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
304 <tag-name><literal>r.return(status[, string])</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
305 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
306 sends the entire response |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
307 with the specified <literal>status</literal> to the client |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
308 <para> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
309 It is possible to specify either a redirect URL |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
310 (for codes 301, 302, 303, 307, and 308) |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
311 or the response body text (for other codes) as the second argument |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
312 </para> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
313 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
314 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
315 <tag-name><literal>r.send(<value>string</value>)</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
316 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
317 sends a part of the response body to the client |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
318 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
319 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
320 <tag-name><literal>r.sendHeader()</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
321 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
322 sends the HTTP headers to the client |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
323 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
324 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
325 <tag-name><literal>r.status</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
326 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
327 status, writable |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
328 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
329 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
330 <tag-name><literal>r.variables{}</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
331 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
332 nginx variables object, read-only |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
333 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
334 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
335 <tag-name><literal>r.warn(<value>string</value>)</literal></tag-name> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
336 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
337 writes a <literal>string</literal> to the error log |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
338 on the <literal>warning</literal> level of logging |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
339 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
340 |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
341 <tag-name><literal>r.uri</literal></tag-name> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
342 <tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
343 current URI, read-only |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
344 </tag-desc> |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
345 |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
346 <tag-name id="subrequest"><literal>r.subrequest(<value>uri</value>[, |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
347 <value>options</value>[, <value>callback</value>]])</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
348 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
349 creates a subrequest with the given <literal>uri</literal> and |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
350 <literal>options</literal>, and installs |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
351 an optional completion <literal>callback</literal>. |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
352 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
353 <para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
354 If <literal>options</literal> is a string, then it |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
355 holds the subrequest arguments string. |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
356 Otherwise, <literal>options</literal> is expected to be |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
357 an object with the following keys: |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
358 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
359 <list type="tag"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
360 <tag-name><literal>args</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
361 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
362 arguments string |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
363 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
364 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
365 <tag-name><literal>body</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
366 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
367 request body |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
368 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
369 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
370 <tag-name><literal>method</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
371 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
372 HTTP method |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
373 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
374 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
375 </list> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
376 </para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
377 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
378 <para> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
379 The completion <literal>callback</literal> receives |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
380 a subrequest response object with methods and properties |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
381 identical to the parent request object. |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
382 </para> |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
383 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
384 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
385 </list> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
386 </para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
387 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
388 </section> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
389 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
390 </section> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
391 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
392 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
393 <section id="stream" name="Stream"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
394 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
395 <para> |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
396 The <literal>stream</literal> object is available only in the |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
397 <link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
398 module. |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
399 </para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
400 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
401 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
402 <section id="stream_session" name="Session"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
403 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
404 <para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
405 <list type="tag"> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
406 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
407 <tag-name><literal>s.remoteAddress</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
408 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
409 client address, read-only |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
410 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
411 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
412 <tag-name><literal>s.eof</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
413 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
414 a boolean read-only property, true if the current buffer is the last buffer |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
415 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
416 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
417 <tag-name><literal>s.fromUpstream</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
418 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
419 a boolean read-only property, |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
420 true if the current buffer is from the upstream server to the client |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
421 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
422 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
423 <tag-name><literal>s.buffer</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
424 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
425 the current buffer, writable |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
426 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
427 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
428 <tag-name><literal>s.variables{}</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
429 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
430 nginx variables object, read-only |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
431 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
432 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
433 <tag-name><literal>s.OK</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
434 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
435 the <literal>OK</literal> return code |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
436 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
437 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
438 <tag-name><literal>s.DECLINED</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
439 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
440 the <literal>DECLINED</literal> return code |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
441 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
442 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
443 <tag-name><literal>s.AGAIN</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
444 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
445 the <literal>AGAIN</literal> return code |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
446 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
447 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
448 <tag-name><literal>s.ERROR</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
449 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
450 the <literal>ERROR</literal> return code |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
451 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
452 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
453 <tag-name><literal>s.ABORT</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
454 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
455 the <literal>ABORT</literal> return code |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
456 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
457 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
458 <tag-name><literal>s.log(<value>string</value>)</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
459 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
460 writes a sent <value>string</value> to the error log |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
461 on the <literal>info</literal> level of logging |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
462 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
463 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
464 <tag-name><literal>s.warn(<value>string</value>)</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
465 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
466 writes a sent <literal>string</literal> to the error log |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
467 on the <literal>warning</literal> level of logging |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
468 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
469 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
470 <tag-name><literal>s.error(<value>string</value>)</literal></tag-name> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
471 <tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
472 writes a sent <literal>string</literal> to the error log |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
473 on the <literal>error</literal> level of logging |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
474 </tag-desc> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
475 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
476 </list> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
477 </para> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
478 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
479 </section> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
480 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
481 </section> |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
482 |
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
483 |
2178 | 484 <section id="example" name="Examples"> |
485 | |
486 | |
487 <section id="example_urldecode" name="URL Decoding"> | |
488 | |
489 <para> | |
490 <example> | |
491 js_include urldecode.js; | |
492 | |
493 js_set $decoded_foo decoded_foo; | |
494 </example> | |
495 </para> | |
496 | |
497 <para> | |
498 The <path>urldecode.js</path> file: | |
499 <example> | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
500 function decoded_foo(r) { |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
501 return decodeURIComponent(r.args.foo); |
2178 | 502 } |
503 </example> | |
504 </para> | |
505 | |
506 </section> | |
507 | |
508 | |
509 <section id="example_urlencode" name="URL Encoding"> | |
510 | |
511 <para> | |
512 <example> | |
513 js_include urlencode.js; | |
514 | |
515 js_set $encoded_foo encoded_foo; | |
516 ... | |
517 | |
518 location / { | |
519 proxy_pass http://example.com?foo=$encoded_foo; | |
520 } | |
521 </example> | |
522 </para> | |
523 | |
524 <para> | |
525 The <path>urlencode.js</path> file: | |
526 <example> | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
527 function encoded_foo(r) { |
2178 | 528 return encodeURIComponent('foo & bar?'); |
529 } | |
530 </example> | |
531 </para> | |
532 | |
533 </section> | |
534 | |
535 | |
2183
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
536 <section id="example_internal_redirect" name="Internal Redirect"> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
537 |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
538 <para> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
539 <example> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
540 js_include redirect.js; |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
541 |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
542 location /redirect { |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
543 js_content redirect; |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
544 } |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
545 |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
546 @named { |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
547 return 200 named; |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
548 } |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
549 </example> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
550 </para> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
551 |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
552 <para> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
553 The <path>redirect.js</path> file: |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
554 <example> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
555 function redirect(r) { |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
556 r.internalRedirect('@named'); |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
557 } |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
558 </example> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
559 </para> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
560 |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
561 </section> |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
562 |
97526b8346f4
Added r.internalRedirect and its example in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2182
diff
changeset
|
563 |
2178 | 564 <section id="example_fast_response" name="Returning Fastest Response from Proxy"> |
565 | |
566 <para> | |
567 <example> | |
568 js_include fastresponse.js; | |
569 | |
570 location /start { | |
571 js_content content; | |
572 } | |
573 | |
574 location /foo { | |
575 proxy_pass http://backend1; | |
576 } | |
577 | |
578 location /bar { | |
579 proxy_pass http://backend2; | |
580 } | |
581 </example> | |
582 </para> | |
583 | |
584 <para> | |
585 The <path>fastresponse.js</path> file: | |
586 <example> | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
587 function content(r) { |
2178 | 588 var n = 0; |
589 | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
590 function done(res) { |
2178 | 591 if (n++ == 0) { |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
592 r.return(res.status, res.responseBody); |
2178 | 593 } |
594 } | |
595 | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
596 r.subrequest('/foo', r.variables.args, done); |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
597 r.subrequest('/bar', r.variables.args, done); |
2178 | 598 } |
599 </example> | |
600 </para> | |
601 | |
602 </section> | |
603 | |
604 | |
605 <section id="example_jwt" name="Creating HS JWT"> | |
606 | |
607 <para> | |
608 <example> | |
609 js_include hs_jwt.js; | |
610 | |
611 js_set $jwt jwt; | |
612 </example> | |
613 </para> | |
614 | |
615 <para> | |
616 The <path>hs_jwt.js</path> file: | |
617 <example> | |
618 function create_hs256_jwt(claims, key, valid) { | |
619 var header = { "typ" : "JWT", "alg" : "HS256", "exp" : Date.now() + valid }; | |
620 | |
621 var s = JSON.stringify(header).toBytes().toString('base64url') + '.' | |
622 + JSON.stringify(claims).toBytes().toString('base64url'); | |
623 | |
624 var h = require('crypto').createHmac('sha256', key); | |
625 | |
626 return s + '.' + h.update(s).digest().toString('base64url'); | |
627 } | |
628 | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
629 function jwt(r) { |
2178 | 630 var claims = { |
631 "iss" : "nginx", | |
632 "sub" : "alice", | |
633 "foo" : 123, | |
634 "bar" : "qq", | |
635 "zyx" : false | |
636 }; | |
637 | |
638 return create_hs256_jwt(claims, 'foo', 600); | |
639 } | |
640 </example> | |
641 </para> | |
642 | |
643 </section> | |
644 | |
645 | |
646 <section id="example_subrequest" name="Accessing API from a Subrequest"> | |
647 | |
648 <para> | |
649 <example> | |
650 js_include subrequest.js; | |
651 | |
652 keyval_zone zone=foo:10m; | |
653 ... | |
654 | |
655 location /keyval { | |
656 js_content set_keyval; | |
657 } | |
658 | |
659 location /version { | |
660 js_content version; | |
661 } | |
662 | |
663 location /api { | |
664 api write=on; | |
665 } | |
666 </example> | |
667 </para> | |
668 | |
669 <para> | |
670 The <path>subrequest.js</path> file: | |
671 <example> | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
672 function set_keyval(r) { |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
673 r.subrequest('/api/3/http/keyvals/foo', |
2178 | 674 { method: 'POST', |
675 body: JSON.stringify({ foo: 789, bar: "ss dd 00" })}, | |
676 | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
677 function(res) { |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
678 if (res.status >= 300) { |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
679 r.return(res.status, res.responseBody); |
2178 | 680 return; |
681 } | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
682 r.return(500); |
2178 | 683 }); |
684 } | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
685 function version(r) { |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
686 r.subrequest('/api/3/nginx', { method: 'GET' }, function(res) { |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
687 if (res.status != 200) { |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
688 r.return(res.status); |
2178 | 689 return; |
690 } | |
691 | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
692 var json = JSON.parse(res.responseBody); |
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
693 r.return(200, json.version); |
2178 | 694 }); |
695 } | |
696 </example> | |
697 </para> | |
698 | |
699 </section> | |
700 | |
701 | |
702 <section id="example_secure_link" name="Creating secure_link Hash"> | |
703 | |
704 <para> | |
705 <example> | |
706 js_include hash.js; | |
707 | |
708 js_set $new_foo create_secure_link; | |
709 ... | |
710 | |
711 location / { | |
712 secure_link $cookie_foo; | |
713 secure_link_md5 "$uri mykey"; | |
714 ... | |
715 } | |
716 | |
717 location @login { | |
718 add_header Set-Cookie "foo=$new_foo; Max-Age=60"; | |
719 return 302 /; | |
720 } | |
721 </example> | |
722 </para> | |
723 | |
724 <para> | |
725 The <path>hash.js</path> file: | |
726 <example> | |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
727 function create_secure_link(r) { |
2178 | 728 return require('crypto').createHash('md5') |
2182
7865ca0da0ab
Merged HTTP request,response, and reply in njs.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2178
diff
changeset
|
729 .update(r.uri).update(" mykey") |
2178 | 730 .digest('base64url'); |
731 } | |
732 </example> | |
733 </para> | |
734 | |
735 </section> | |
736 | |
737 </section> | |
738 | |
2175
cd4889fdcfa4
Moved njs HTTP and Stream API to a separate page.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
739 </article> |