comparison xml/ru/docs/njs/njs_api.xml @ 2175:cd4889fdcfa4

Moved njs HTTP and Stream API to a separate page.
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 05 Jun 2018 18:22:00 +0300
parents
children 7865ca0da0ab
comparison
equal deleted inserted replaced
2174:3b782a679237 2175:cd4889fdcfa4
1 <?xml version="1.0"?>
2
3 <!--
4 Copyright (C) Nginx, Inc.
5 -->
6
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
8
9 <article name="njs API"
10 link="/ru/docs/njs/njs_api.html"
11 lang="ru"
12 rev="1">
13
14 <section id="summary">
15
16 <para>
17 <link doc="../njs_about.xml">njs</link> предоставляет объекты, методы и свойства
18 для расширения функциональности nginx.
19 </para>
20
21 </section>
22
23
24 <section id="http" name="HTTP">
25
26 <para>
27 Объекты <literal>HTTP</literal> доступны только в
28 модуле <link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link>.
29 </para>
30
31
32 <section id="http_request" name="Запрос">
33
34 <para>
35 <list type="tag">
36
37 <tag-name><literal>req.uri</literal></tag-name>
38 <tag-desc>
39 текущий URI запроса, только чтение
40 </tag-desc>
41
42 <tag-name><literal>req.method</literal></tag-name>
43 <tag-desc>
44 метод запроса, только чтение
45 </tag-desc>
46
47 <tag-name><literal>req.httpVersion</literal></tag-name>
48 <tag-desc>
49 версия HTTP, только чтение
50 </tag-desc>
51
52 <tag-name><literal>req.remoteAddress</literal></tag-name>
53 <tag-desc>
54 адрес клиента, только чтение
55 </tag-desc>
56
57 <tag-name><literal>req.headers{}</literal></tag-name>
58 <tag-desc>
59 объект заголовков запроса, только чтение.
60 <para>
61 Например, доступ к заголовку <literal>Header-Name</literal>
62 можно получить при помощи синтаксиса <literal>headers['Header-Name']</literal>
63 или <literal>headers.Header_name</literal>
64 </para>
65 </tag-desc>
66
67 <tag-name><literal>req.args{}</literal></tag-name>
68 <tag-desc>
69 объект аргументов запроса, только чтение
70 </tag-desc>
71
72 <tag-name><literal>req.variables{}</literal></tag-name>
73 <tag-desc>
74 объект переменных nginx, только чтение
75 </tag-desc>
76
77 <tag-name><literal>req.response</literal></tag-name>
78 <tag-desc>
79 объект <link id="http_response_object">ответа</link> (0.2.0), только чтение
80 </tag-desc>
81
82 <tag-name><literal>req.log(<value>строка</value>)</literal></tag-name>
83 <tag-desc>
84 записывает <literal>строку</literal> в лог-файл ошибок
85 на уровне лога <literal>info</literal>
86 </tag-desc>
87
88 <tag-name><literal>req.warn(<value>строка</value>)</literal></tag-name>
89 <tag-desc>
90 записывает <literal>строку</literal> в лог-файл ошибок
91 на уровне лога <literal>warning</literal> (0.2.0)
92 </tag-desc>
93
94 <tag-name><literal>req.error(<value>строка</value>)</literal></tag-name>
95 <tag-desc>
96 записывает <literal>строку</literal> в лог-файл ошибок
97 на уровне лога <literal>error</literal> (0.2.0)
98 </tag-desc>
99
100 <tag-name id="subrequest"><literal>req.subrequest(<value>uri</value>[,
101 <value>options</value>[, <value>callback</value>]])</literal></tag-name>
102 <tag-desc>
103 создаёт подзапрос с заданными <literal>uri</literal> и
104 <literal>options</literal> и
105 устанавливает необязательный <literal>callback</literal> завершения (0.2.0).
106
107 <para>
108 Если <literal>options</literal> является строкой, то в ней
109 содержится срока аргументов подзапроса.
110 В противном случае ожидается, что <literal>options</literal> является объектом
111 со следующими ключами:
112 <list type="tag">
113 <tag-name><literal>args</literal></tag-name>
114 <tag-desc>
115 строка с аргументами
116 </tag-desc>
117
118 <tag-name><literal>body</literal></tag-name>
119 <tag-desc>
120 тело запроса
121 </tag-desc>
122
123 <tag-name><literal>method</literal></tag-name>
124 <tag-desc
125 >метод HTTP
126 </tag-desc>
127
128 </list>
129 </para>
130
131 <para>
132 <literal>callback</literal>
133 получает объект <link id="http_reply">reply</link>.
134 </para>
135 </tag-desc>
136
137 </list>
138 </para>
139
140 </section>
141
142
143 <section id="http_response" name="Ответ">
144
145 <para>
146 <list type="tag">
147
148 <tag-name><literal>res.status</literal></tag-name>
149 <tag-desc>
150 статус ответа, доступно для записи
151 </tag-desc>
152
153 <tag-name><literal>res.headers{}</literal></tag-name>
154 <tag-desc>
155 объект заголовков ответа
156 </tag-desc>
157
158 <tag-name><literal>res.contentType</literal></tag-name>
159 <tag-desc>
160 значение поля <header>Content-Type</header> заголовка ответа,
161 доступно для записи
162 </tag-desc>
163
164 <tag-name><literal>res.contentLength</literal></tag-name>
165 <tag-desc>
166 значение поля <header>Content-Length</header> заголовка ответа,
167 доступно для записи
168 </tag-desc>
169
170 <tag-name><literal>res.sendHeader()</literal></tag-name>
171 <tag-desc>
172 отправляет заголовок HTTP клиенту
173 </tag-desc>
174
175 <tag-name><literal>res.send(<value>строка</value>)</literal></tag-name>
176 <tag-desc>
177 отправляет часть тела ответа клиенту
178 </tag-desc>
179
180 <tag-name><literal>res.finish()</literal></tag-name>
181 <tag-desc>
182 завершает отправку ответа клиенту
183 </tag-desc>
184
185 <tag-name><literal>res.return(код[, строка])</literal></tag-name>
186 <tag-desc>
187 отправляет
188 клиенту полный ответ с указанным <literal>кодом</literal> (0.2.0)
189 <para>
190 Можно задать или URL перенаправления
191 (для кодов 301, 302, 303, 307 и 308),
192 или текст тела ответа (для остальных кодов) в качестве второго аргумента
193 </para>
194 </tag-desc>
195
196 </list>
197 </para>
198
199 </section>
200
201
202 <section id="http_reply" name="Reply">
203
204 <para>
205 <list type="tag">
206
207 <tag-name><literal>reply.uri</literal></tag-name>
208 <tag-desc>
209 текущий URI, только чтение
210 </tag-desc>
211
212 <tag-name><literal>reply.method</literal></tag-name>
213 <tag-desc>
214 метод, только чтение
215 </tag-desc>
216
217 <tag-name><literal>reply.status</literal></tag-name>
218 <tag-desc>
219 статус, доступно для записи
220 </tag-desc>
221
222 <tag-name><literal>reply.contentType</literal></tag-name>
223 <tag-desc>
224 значение поля <header>Content-Type</header> заголовка,
225 доступно для записи
226 </tag-desc>
227
228 <tag-name><literal>reply.contentLength</literal></tag-name>
229 <tag-desc>
230 значение поля <header>Content-Length</header> заголовка,
231 доступно для записи
232 </tag-desc>
233
234 <tag-name><literal>reply.headers{}</literal></tag-name>
235 <tag-desc>
236 объект заголовков ответа, только чтение
237 </tag-desc>
238
239 </list>
240 </para>
241
242 <para>
243 Кроме того, у объект <literal>reply</literal> имеет
244 следующие свойства:
245
246 <list type="tag">
247
248 <tag-name><literal>reply.body</literal></tag-name>
249 <tag-desc>
250 хранит тело ответа подзапроса
251 </tag-desc>
252
253 <tag-name><literal>reply.parent</literal></tag-name>
254 <tag-desc>
255 ссылается на родительский объект запроса
256 </tag-desc>
257
258 </list>
259 </para>
260
261 </section>
262
263 </section>
264
265
266 <section id="stream" name="Stream">
267
268 <para>
269 Объекты <literal>stream</literal> доступны только в
270 модуле
271 <link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link>.
272 </para>
273
274
275 <section id="stream_session" name="Сессия">
276
277 <para>
278 <list type="tag">
279
280 <tag-name><literal>s.remoteAddress</literal></tag-name>
281 <tag-desc>
282 адрес клиента, только чтение
283 </tag-desc>
284
285 <tag-name><literal>s.eof</literal></tag-name>
286 <tag-desc>
287 логическое свойство,
288 true, если текущий буфер является последним буфером,
289 только чтение
290 </tag-desc>
291
292 <tag-name><literal>s.fromUpstream</literal></tag-name>
293 <tag-desc>
294 логическое свойство,
295 true, если текущий буфер является буфером от проксируемого сервера к клиенту,
296 только чтение
297 </tag-desc>
298
299 <tag-name><literal>s.buffer</literal></tag-name>
300 <tag-desc>
301 текущий буфер, доступен для записи
302 </tag-desc>
303
304 <tag-name><literal>s.variables{}</literal></tag-name>
305 <tag-desc>
306 объект переменных nginx, только чтение
307 </tag-desc>
308
309 <tag-name><literal>s.OK</literal></tag-name>
310 <tag-desc>
311 код <literal>OK</literal>
312 </tag-desc>
313
314 <tag-name><literal>s.DECLINED</literal></tag-name>
315 <tag-desc>
316 код <literal>DECLINED</literal>
317 </tag-desc>
318
319 <tag-name><literal>s.AGAIN</literal></tag-name>
320 <tag-desc>
321 код <literal>AGAIN</literal>
322 </tag-desc>
323
324 <tag-name><literal>s.ERROR</literal></tag-name>
325 <tag-desc>
326 код <literal>ERROR</literal>
327 </tag-desc>
328
329 <tag-name><literal>s.ABORT</literal></tag-name>
330 <tag-desc>
331 код <literal>ABORT</literal>
332 </tag-desc>
333
334 <tag-name><literal>s.log(<value>строка</value>)</literal></tag-name>
335 <tag-desc>
336 записывает отправленную <value>строку</value> в лог-файл ошибок
337 на уровне лога <literal>info</literal>
338 </tag-desc>
339
340 <tag-name><literal>s.warn(<value>строка</value>)</literal></tag-name>
341 <tag-desc>
342 записывает отправленную <literal>строку</literal> в лог-файл ошибок
343 на уровне лога <literal>warning</literal> (0.2.0)
344 </tag-desc>
345
346 <tag-name><literal>s.error(<value>строка</value>)</literal></tag-name>
347 <tag-desc>
348 записывает отправленную <literal>строку</literal> в лог-файл ошибок
349 на уровне лога <literal>error</literal> (0.2.0)
350 </tag-desc>
351
352 </list>
353 </para>
354
355 </section>
356
357 </section>
358
359
360 </article>
361