Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_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_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="19"> | 12 rev="20"> |
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> позволяет задавать |
30 | 30 |
31 | 31 |
32 <section id="example" name="Пример конфигурации"> | 32 <section id="example" name="Пример конфигурации"> |
33 | 33 |
34 <para> | 34 <para> |
35 Пример работает начиная с версии | |
36 <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>. | |
35 <example> | 37 <example> |
36 load_module modules/ngx_http_js_module.so; | 38 load_module modules/ngx_http_js_module.so; |
37 ... | 39 ... |
38 | 40 |
39 http { | 41 http { |
40 js_include http.js; | 42 js_import http.js; |
41 | 43 |
42 js_set $foo foo; | 44 js_set $foo http.foo; |
43 js_set $summary summary; | 45 js_set $summary http.summary; |
44 | 46 |
45 server { | 47 server { |
46 listen 8000; | 48 listen 8000; |
47 | 49 |
48 location / { | 50 location / { |
49 add_header X-Foo $foo; | 51 add_header X-Foo $foo; |
50 js_content baz; | 52 js_content http.baz; |
51 } | 53 } |
52 | 54 |
53 location = /summary { | 55 location = /summary { |
54 return 200 $summary; | 56 return 200 $summary; |
55 } | 57 } |
56 | 58 |
57 location = /hello { | 59 location = /hello { |
58 js_content hello; | 60 js_content http.hello; |
59 } | 61 } |
60 } | 62 } |
61 } | 63 } |
62 </example> | 64 </example> |
63 </para> | 65 </para> |
64 | 66 |
65 <para> | 67 <para> |
66 Файл <path>http.js</path>: | 68 The <path>http.js</path> file: |
67 <example> | 69 <example> |
68 function foo(r) { | 70 function foo(r) { |
69 r.log("hello from foo() handler"); | 71 r.log("hello from foo() handler"); |
70 return "foo"; | 72 return "foo"; |
71 } | 73 } |
108 } | 110 } |
109 | 111 |
110 function hello(r) { | 112 function hello(r) { |
111 r.return(200, "Hello world!"); | 113 r.return(200, "Hello world!"); |
112 } | 114 } |
115 | |
116 export default {foo, summary, baz, hello}; | |
113 </example> | 117 </example> |
114 </para> | 118 </para> |
115 | 119 |
116 </section> | 120 </section> |
117 | 121 |
118 | 122 |
119 <section id="directives" name="Директивы"> | 123 <section id="directives" name="Директивы"> |
120 | 124 |
121 <directive name="js_content"> | 125 <directive name="js_content"> |
122 <syntax><value>функция</value></syntax> | 126 <syntax><value>функция</value> | <value>модуль.функция</value></syntax> |
123 <default/> | 127 <default/> |
124 <context>location</context> | 128 <context>location</context> |
125 <context>limit_except</context> | 129 <context>limit_except</context> |
126 | 130 |
127 <para> | 131 <para> |
128 Задаёт функцию njs в качестве обработчика содержимого location. | 132 Задаёт функцию njs в качестве обработчика содержимого location. |
133 Начиная с версии <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link> | |
134 можно ссылаться на функцию модуля. | |
135 </para> | |
136 | |
137 </directive> | |
138 | |
139 | |
140 <directive name="js_import"> | |
141 <syntax><value>модуль.js</value> | | |
142 <value>имя_экспорта из модуль.js</value></syntax> | |
143 <default/> | |
144 <context>http</context> | |
145 <appeared-in>0.4.0</appeared-in> | |
146 | |
147 <para> | |
148 Импортирует модуль, позволяющий задавать обработчики location и переменных | |
149 на njs. | |
150 <literal>Имя_экспорта</literal> является пространством имён | |
151 при доступе к функциям модуля. | |
152 Если <literal>имя_экспорта</literal> не задано, | |
153 то пространством имён будет являться имя модуля. | |
154 <example> | |
155 js_import http.js; | |
156 </example> | |
157 В примере при доступе к экспорту в качестве | |
158 пространства имён используется имя модуля <literal>http</literal>. | |
159 Если импортируемый модуль содержит <literal>foo()</literal>, | |
160 то для доступа используется <literal>http.foo</literal>. | |
161 </para> | |
162 | |
163 <para> | |
164 Директив <literal>js_import</literal> может быть несколько. | |
129 </para> | 165 </para> |
130 | 166 |
131 </directive> | 167 </directive> |
132 | 168 |
133 | 169 |
135 <syntax><value>файл</value></syntax> | 171 <syntax><value>файл</value></syntax> |
136 <default/> | 172 <default/> |
137 <context>http</context> | 173 <context>http</context> |
138 | 174 |
139 <para> | 175 <para> |
140 Задаёт файл, позволяющий задавать обработчики location и переменных | 176 Задаёт файл, позволяющий задавать обработчики location и переменных на njs: |
141 на njs. | 177 <example> |
178 nginx.conf: | |
179 js_include http.js; | |
180 location /version { | |
181 js_content version; | |
182 } | |
183 | |
184 http.js: | |
185 function version(r) { | |
186 r.return(200, njs.version); | |
187 } | |
188 </example> | |
189 </para> | |
190 | |
191 <para> | |
192 Директива устарела начиная с | |
193 <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>, | |
194 вместо неё следует использовать директиву <link id="js_import"/>. | |
142 </para> | 195 </para> |
143 | 196 |
144 </directive> | 197 </directive> |
145 | 198 |
146 | 199 |
158 </directive> | 211 </directive> |
159 | 212 |
160 | 213 |
161 <directive name="js_set"> | 214 <directive name="js_set"> |
162 <syntax> | 215 <syntax> |
163 <value>$переменная</value> <value>функция</value></syntax> | 216 <value>$переменная</value> <value>функция</value> | |
217 <value>модуль.функция</value></syntax> | |
164 <default/> | 218 <default/> |
165 <context>http</context> | 219 <context>http</context> |
166 | 220 |
167 <para> | 221 <para> |
168 Задаёт функцию njs для указанной переменной. | 222 Задаёт функцию njs для указанной переменной. |
223 Начиная с <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link> | |
224 можно ссылаться на функцию модуля. | |
169 </para> | 225 </para> |
170 | 226 |
171 </directive> | 227 </directive> |
172 | 228 |
173 </section> | 229 </section> |