comparison xml/ru/docs/http/ngx_http_js_module.xml @ 2664:9e39e64bff84

Documented the js_body_filter directive.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 04 Mar 2021 14:34:52 +0000
parents b4991bbd64ee
children 893cd7724c8c
comparison
equal deleted inserted replaced
2663:a33d8f0f48b2 2664:9e39e64bff84
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> 7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
8 8
9 <module name="Модуль ngx_http_js_module" 9 <module name="Модуль ngx_http_js_module"
10 link="/ru/docs/http/ngx_http_js_module.html" 10 link="/ru/docs/http/ngx_http_js_module.html"
11 lang="ru" 11 lang="ru"
12 rev="23"> 12 rev="24">
13 13
14 <section id="summary"> 14 <section id="summary">
15 15
16 <para> 16 <para>
17 Модуль <literal>ngx_http_js_module</literal> позволяет задавать 17 Модуль <literal>ngx_http_js_module</literal> позволяет задавать
116 </section> 116 </section>
117 117
118 118
119 <section id="directives" name="Директивы"> 119 <section id="directives" name="Директивы">
120 120
121 <directive name="js_body_filter">
122 <syntax><value>функция</value> | <value>модуль.функция</value>
123 [<value>buffer_type</value>=<value>строка</value> | <value>буфер</value>]</syntax>
124 <default/>
125 <context>location</context>
126 <context>limit_except</context>
127 <appeared-in>0.5.2</appeared-in>
128
129 <para>
130 Задаёт функцию njs в качестве фильтра тела ответа.
131 Функция фильтра вызывается для каждого блока данных тела ответа
132 со следующими аргументами:
133
134 <list type="tag">
135 <tag-name><literal>data</literal></tag-name>
136 <tag-desc>
137 входящий блок данных
138 может быть строкой или буфером
139 в зависимости от значения <literal>buffer_type</literal>,
140 по умолчанию является строкой.
141 </tag-desc>
142
143 <tag-name><literal>flags</literal></tag-name>
144 <tag-desc>
145 объект со следующими свойствами:
146 <list type="tag">
147 <tag-name><literal>last</literal></tag-name>
148 <tag-desc>
149 логическое значение, true, если данные являются последним буфером.
150 </tag-desc>
151
152 </list>
153 </tag-desc>
154
155 </list>
156 </para>
157
158 <para>
159 Функция фильтра может передавать свою модифицированную версию
160 входящего блока данных следующему фильтру тела ответа при помощи вызова
161 <link doc="../njs/reference.xml" id="r_sendbuffer"><literal>r.sendBuffer()</literal></link>.
162 Пример преобразования букв в нижний регистр в теле ответа:
163 <example>
164 function filter(data, flags) {
165 r.sendBuffer(data.toLowerCase(), flags);
166 }
167 </example>
168 Для отмены фильтра (блоки данных будут передаваться клиенту
169 без вызова <literal>js_body_filter</literal>),
170 можно использовать
171 <link doc="../njs/reference.xml" id="r_done"><literal>r.done()</literal></link>.
172 </para>
173
174 <para>
175 Если функция фильтра изменяет длину тела ответа, то
176 необходимо очистить заголовок ответа <header>Content-Length</header>
177 (если присутствует) в
178 <link id="js_header_filter"><literal>js_header_filter</literal></link>,
179 чтобы применить поблочное кодирование.
180 </para>
181
182 </directive>
183
184
121 <directive name="js_content"> 185 <directive name="js_content">
122 <syntax><value>функция</value> | <value>модуль.функция</value></syntax> 186 <syntax><value>функция</value> | <value>модуль.функция</value></syntax>
123 <default/> 187 <default/>
124 <context>location</context> 188 <context>location</context>
125 <context>limit_except</context> 189 <context>limit_except</context>