comparison xml/ru/docs/stream/ngx_stream_js_module.xml @ 2530:407c5bd5bffc

Documented the js_import directive and corresponding changes. Also the following changes: - js_include is deprecated - js_access, js_content, js_filter, js_preread, js_set can now accept module.function - Example Configuration changed for both http and stream js modules.
author Yaroslav Zhuravlev <yar@nginx.com>
date Wed, 22 Apr 2020 16:54:11 +0100
parents 1101e24c6d14
children 617bc29bd759
comparison
equal deleted inserted replaced
2529:8cc141e0460f 2530:407c5bd5bffc
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> 7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">
8 8
9 <module name="Модуль ngx_stream_js_module" 9 <module name="Модуль ngx_stream_js_module"
10 link="/ru/docs/stream/ngx_stream_js_module.html" 10 link="/ru/docs/stream/ngx_stream_js_module.html"
11 lang="ru" 11 lang="ru"
12 rev="17"> 12 rev="18">
13 13
14 <section id="summary"> 14 <section id="summary">
15 15
16 <para> 16 <para>
17 Модуль <literal>ngx_stream_js_module</literal> позволяет задавать 17 Модуль <literal>ngx_stream_js_module</literal> позволяет задавать
29 29
30 30
31 <section id="example" name="Пример конфигурации"> 31 <section id="example" name="Пример конфигурации">
32 32
33 <para> 33 <para>
34 Пример работает начиная с версии
35 <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>.
34 <example> 36 <example>
35 load_module modules/ngx_stream_js_module.so; 37 load_module modules/ngx_stream_js_module.so;
36 ... 38 ...
37 39
38 stream { 40 stream {
39 js_include stream.js; 41 js_import stream.js;
40 42
41 js_set $bar bar; 43 js_set $bar stream.bar;
42 js_set $req_line req_line; 44 js_set $req_line stream.req_line;
43 45
44 server { 46 server {
45 listen 12345; 47 listen 12345;
46 48
47 js_preread preread; 49 js_preread stream.preread;
48 return $req_line; 50 return $req_line;
49 } 51 }
50 52
51 server { 53 server {
52 listen 12346; 54 listen 12346;
53 55
54 js_access access; 56 js_access stream.access;
55 proxy_pass 127.0.0.1:8000; 57 proxy_pass 127.0.0.1:8000;
56 js_filter header_inject; 58 js_filter stream.header_inject;
57 } 59 }
58 } 60 }
59 61
60 http { 62 http {
61 server { 63 server {
119 return; 121 return;
120 } 122 }
121 123
122 s.allow(); 124 s.allow();
123 } 125 }
126
127 export default {bar, preread, req_line, access};
124 </example> 128 </example>
125 </para> 129 </para>
126 130
127 </section> 131 </section>
128 132
129 133
130 <section id="directives" name="Директивы"> 134 <section id="directives" name="Директивы">
131 135
132 <directive name="js_access"> 136 <directive name="js_access">
133 <syntax><value>функция</value></syntax> 137 <syntax><value>функция</value> | <value>модуль.функция</value></syntax>
134 <default/> 138 <default/>
135 <context>stream</context> 139 <context>stream</context>
136 <context>server</context> 140 <context>server</context>
137 141
138 <para> 142 <para>
139 Задаёт функцию njs, которая будет вызываться в 143 Задаёт функцию njs, которая будет вызываться в
140 <link doc="stream_processing.xml" id="access_phase">access</link>-фазе. 144 <link doc="stream_processing.xml" id="access_phase">access</link>-фазе.
145 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>
146 можно ссылаться на функцию модуля.
141 </para> 147 </para>
142 148
143 </directive> 149 </directive>
144 150
145 151
146 <directive name="js_filter"> 152 <directive name="js_filter">
147 <syntax><value>функция</value></syntax> 153 <syntax><value>функция</value> | <value>модуль.функция</value></syntax>
148 <default/> 154 <default/>
149 <context>stream</context> 155 <context>stream</context>
150 <context>server</context> 156 <context>server</context>
151 157
152 <para> 158 <para>
153 Задаёт фильтр данных. 159 Задаёт фильтр данных.
160 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>
161 можно ссылаться на функцию модуля.
162 </para>
163
164 </directive>
165
166
167 <directive name="js_import">
168 <syntax><value>модуль.js</value> |
169 <value>имя_экспорта из модуль.js</value></syntax>
170 <default/>
171 <context>stream</context>
172 <appeared-in>0.4.0</appeared-in>
173
174 <para>
175 Импортирует модуль, позволяющий задавать обработчики location и переменных
176 на njs.
177 <literal>Имя_экспорта</literal> является пространством имён
178 при доступе к функциям модуля.
179 Если <literal>имя_экспорта</literal> не задано,
180 то пространством имён будет являться имя модуля.
181 <example>
182 js_import stream.js;
183 </example>
184 В примере при доступе к экспорту в качестве
185 пространства имён используется имя модуля <literal>stream</literal>.
186 Если импортируемый модуль содержит <literal>foo()</literal>,
187 то для доступа используется <literal>stream.foo</literal>.
188 </para>
189
190 <para>
191 Директив <literal>js_import</literal> может быть несколько.
154 </para> 192 </para>
155 193
156 </directive> 194 </directive>
157 195
158 196
160 <syntax><value>файл</value></syntax> 198 <syntax><value>файл</value></syntax>
161 <default/> 199 <default/>
162 <context>stream</context> 200 <context>stream</context>
163 201
164 <para> 202 <para>
165 Задаёт файл, который позволяет 203 Задаёт файл, который позволяет задавать обработчики server и переменных на njs:
166 задавать обработчики server и переменных на njs. 204 <example>
205 nginx.conf:
206 js_include stream.js;
207 js_set $js_addr address;
208 server {
209 listen 127.0.0.1:12345;
210 return $js_addr;
211 }
212
213 stream.js:
214 function address(s) {
215 return s.remoteAddress;
216 }
217 </example>
218 </para>
219
220 <para>
221 Директива устарела начиная с
222 <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>,
223 вместо неё следует использовать директиву <link id="js_import"/>.
167 </para> 224 </para>
168 225
169 </directive> 226 </directive>
170 227
171 228
172 <directive name="js_preread"> 229 <directive name="js_preread">
173 <syntax><value>функция</value></syntax> 230 <syntax><value>функция</value> | <value>модуль.функция</value></syntax>
174 <default/> 231 <default/>
175 <context>stream</context> 232 <context>stream</context>
176 <context>server</context> 233 <context>server</context>
177 234
178 <para> 235 <para>
179 Задаёт функцию njs, которая будет вызываться в 236 Задаёт функцию njs, которая будет вызываться в
180 <link doc="stream_processing.xml" id="preread_phase">preread</link>-фазе. 237 <link doc="stream_processing.xml" id="preread_phase">preread</link>-фазе.
238 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>
239 можно ссылаться на функцию модуля.
181 </para> 240 </para>
182 241
183 </directive> 242 </directive>
184 243
185 244
197 </directive> 256 </directive>
198 257
199 258
200 <directive name="js_set"> 259 <directive name="js_set">
201 <syntax> 260 <syntax>
202 <value>$переменная</value> <value>функция</value></syntax> 261 <value>$переменная</value> <value>функция</value> |
262 <value>модуль.функция</value></syntax>
203 <default/> 263 <default/>
204 <context>stream</context> 264 <context>stream</context>
205 265
206 <para> 266 <para>
207 Задаёт функцию njs для указанной переменной. 267 Задаёт функцию njs для указанной переменной.
268 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>
269 можно ссылаться на функцию модуля.
208 </para> 270 </para>
209 271
210 </directive> 272 </directive>
211 273
212 </section> 274 </section>