Mercurial > hg > nginx-site
annotate xml/en/docs/http/ngx_http_js_module.xml @ 2804:8831b3d9f332
Moved njs Examples to GitHub.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Wed, 24 Nov 2021 12:06:27 +0000 |
parents | 005b056c267f |
children | 652356b39f0f |
rev | line source |
---|---|
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
1 <?xml version="1.0"?> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
2 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
3 <!-- |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
4 Copyright (C) Nginx, Inc. |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
5 --> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
6 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
7 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
8 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
9 <module name="Module ngx_http_js_module" |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
10 link="/en/docs/http/ngx_http_js_module.html" |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
11 lang="en" |
2787
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
12 rev="33"> |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
13 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
14 <section id="summary"> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
15 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
16 <para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
17 The <literal>ngx_http_js_module</literal> module is used to implement |
1844
f56626ce9c40
Changed JavaScript to nginScript.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1840
diff
changeset
|
18 location and variable handlers |
2245
87a0e2c73a25
Refactored njs documentation.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2244
diff
changeset
|
19 in <link doc="../njs/index.xml">njs</link> — |
1844
f56626ce9c40
Changed JavaScript to nginScript.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1840
diff
changeset
|
20 a subset of the JavaScript language. |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
21 </para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
22 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
23 <para> |
2188
523dc4cc8745
Updated installation procedure in njs modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2187
diff
changeset
|
24 Download and install instructions are available |
2245
87a0e2c73a25
Refactored njs documentation.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2244
diff
changeset
|
25 <link doc="../njs/install.xml">here</link>. |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
26 </para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
27 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
28 </section> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
29 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
30 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
31 <section id="example" name="Example Configuration"> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
32 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
33 <para> |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
34 The example works since |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
35 <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>. |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
36 <example> |
2190
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
37 http { |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
38 js_import http.js; |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
39 |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
40 js_set $foo http.foo; |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
41 js_set $summary http.summary; |
2779
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
42 js_set $hash http.hash; |
1858
36cbfff92c6d
Restricted context of js_set directive to http and stream only.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
1853
diff
changeset
|
43 |
2784
65591dd31d64
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2779
diff
changeset
|
44 resolver 10.0.0.1; |
65591dd31d64
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2779
diff
changeset
|
45 |
2190
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
46 server { |
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
47 listen 8000; |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
48 |
2190
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
49 location / { |
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
50 add_header X-Foo $foo; |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
51 js_content http.baz; |
2190
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
52 } |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
53 |
2206
5cacd6fffade
Eliminated some examples of unsafe prefix locations.
Ruslan Ermilov <ru@nginx.com>
parents:
2190
diff
changeset
|
54 location = /summary { |
2190
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
55 return 200 $summary; |
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
56 } |
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
57 |
2206
5cacd6fffade
Eliminated some examples of unsafe prefix locations.
Ruslan Ermilov <ru@nginx.com>
parents:
2190
diff
changeset
|
58 location = /hello { |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
59 js_content http.hello; |
2190
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
60 } |
2779
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
61 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
62 # since 0.7.0 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
63 location = /fetch { |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
64 js_content http.fetch; |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
65 js_fetch_trusted_certificate /path/to/ISRG_Root_X1.pem; |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
66 } |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
67 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
68 # since 0.7.0 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
69 location = /crypto { |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
70 add_header Hash $hash; |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
71 return 200; |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
72 } |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
73 } |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
74 } |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
75 </example> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
76 </para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
77 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
78 <para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
79 The <path>http.js</path> file: |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
80 <example> |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
81 function foo(r) { |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
82 r.log("hello from foo() handler"); |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
83 return "foo"; |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
84 } |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
85 |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
86 function summary(r) { |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
87 var a, s, h; |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
88 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
89 s = "JS summary\n\n"; |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
90 |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
91 s += "Method: " + r.method + "\n"; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
92 s += "HTTP version: " + r.httpVersion + "\n"; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
93 s += "Host: " + r.headersIn.host + "\n"; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
94 s += "Remote Address: " + r.remoteAddress + "\n"; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
95 s += "URI: " + r.uri + "\n"; |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
96 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
97 s += "Headers:\n"; |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
98 for (h in r.headersIn) { |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
99 s += " header '" + h + "' is '" + r.headersIn[h] + "'\n"; |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
100 } |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
101 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
102 s += "Args:\n"; |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
103 for (a in r.args) { |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
104 s += " arg '" + a + "' is '" + r.args[a] + "'\n"; |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
105 } |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
106 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
107 return s; |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
108 } |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
109 |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
110 function baz(r) { |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
111 r.status = 200; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
112 r.headersOut.foo = 1234; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
113 r.headersOut['Content-Type'] = "text/plain; charset=utf-8"; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
114 r.headersOut['Content-Length'] = 15; |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
115 r.sendHeader(); |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
116 r.send("nginx"); |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
117 r.send("java"); |
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
118 r.send("script"); |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
119 |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
120 r.finish(); |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
121 } |
2190
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
122 |
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
123 function hello(r) { |
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
124 r.return(200, "Hello world!"); |
dfc49994218c
Updated example in HTTP njs module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2188
diff
changeset
|
125 } |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
126 |
2779
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
127 // since 0.7.0 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
128 async function fetch(r) { |
2784
65591dd31d64
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2779
diff
changeset
|
129 let results = await Promise.all([ngx.fetch('https://nginx.org/'), |
65591dd31d64
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2779
diff
changeset
|
130 ngx.fetch('https://nginx.org/en/')]); |
2779
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
131 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
132 r.return(200, JSON.stringify(results, undefined, 4)); |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
133 } |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
134 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
135 // since 0.7.0 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
136 async function hash(r) { |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
137 let hash = await crypto.subtle.digest('SHA-512', r.headersIn.host); |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
138 r.setReturnValue(Buffer.from(hash).toString('hex')); |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
139 } |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
140 |
b6bbdce8c659
Updated Example Configuration in ngx_http_js_module.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2773
diff
changeset
|
141 export default {foo, summary, baz, hello, fetch, hash}; |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
142 </example> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
143 </para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
144 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
145 </section> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
146 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
147 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
148 <section id="directives" name="Directives"> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
149 |
2664
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
150 <directive name="js_body_filter"> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
151 <syntax><value>function</value> | <value>module.function</value> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
152 [<value>buffer_type</value>=<value>string</value> | <value>buffer</value>]</syntax> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
153 <default/> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
154 <context>location</context> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
155 <context>limit_except</context> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
156 <appeared-in>0.5.2</appeared-in> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
157 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
158 <para> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
159 Sets an njs function as a response body filter. |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
160 The filter function is called for each data chunk of a response body |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
161 with the following arguments: |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
162 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
163 <list type="tag"> |
2675
893cd7724c8c
Documented the "r" argument for js_body_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2664
diff
changeset
|
164 <tag-name><literal>r</literal></tag-name> |
893cd7724c8c
Documented the "r" argument for js_body_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2664
diff
changeset
|
165 <tag-desc> |
893cd7724c8c
Documented the "r" argument for js_body_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2664
diff
changeset
|
166 the <link doc="../njs/reference.xml" id="http">HTTP request</link> object |
893cd7724c8c
Documented the "r" argument for js_body_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2664
diff
changeset
|
167 </tag-desc> |
893cd7724c8c
Documented the "r" argument for js_body_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2664
diff
changeset
|
168 |
2664
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
169 <tag-name><literal>data</literal></tag-name> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
170 <tag-desc> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
171 the incoming data chunk, |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
172 may be a string or Buffer |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
173 depending on the <literal>buffer_type</literal> value, |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
174 by default is a string. |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
175 </tag-desc> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
176 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
177 <tag-name><literal>flags</literal></tag-name> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
178 <tag-desc> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
179 an object with the following properties: |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
180 <list type="tag"> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
181 <tag-name><literal>last</literal></tag-name> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
182 <tag-desc> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
183 a boolean value, true if data is a last buffer. |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
184 </tag-desc> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
185 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
186 </list> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
187 </tag-desc> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
188 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
189 </list> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
190 </para> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
191 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
192 <para> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
193 The filter function can pass its own modified version |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
194 of the input data chunk to the next body filter by calling |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
195 <link doc="../njs/reference.xml" id="r_sendbuffer"><literal>r.sendBuffer()</literal></link>. |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
196 For example, to transform all the lowercase letters in the response body: |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
197 <example> |
2675
893cd7724c8c
Documented the "r" argument for js_body_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2664
diff
changeset
|
198 function filter(r, data, flags) { |
2664
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
199 r.sendBuffer(data.toLowerCase(), flags); |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
200 } |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
201 </example> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
202 To stop filtering (following data chunks will be passed to client |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
203 without calling <literal>js_body_filter</literal>), |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
204 <link doc="../njs/reference.xml" id="r_done"><literal>r.done()</literal></link> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
205 can be used. |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
206 </para> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
207 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
208 <para> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
209 If the filter function changes the length of the response body, then |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
210 it is required to clear out the <header>Content-Length</header> response header |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
211 (if any) in |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
212 <link id="js_header_filter"><literal>js_header_filter</literal></link> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
213 to enforce chunked transfer encoding. |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
214 </para> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
215 |
2787
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
216 <para> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
217 <note> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
218 As the <literal>js_body_filter</literal> handler |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
219 returns its result immediately, it supports |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
220 only synchronous operations. |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
221 Thus, asynchronous operations such as |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
222 <link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
223 or |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
224 <link doc="../njs/reference.xml" id="settimeout">setTimeout()</link> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
225 are not supported. |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
226 </note> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
227 </para> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
228 |
2664
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
229 </directive> |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
230 |
9e39e64bff84
Documented the js_body_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2651
diff
changeset
|
231 |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
232 <directive name="js_content"> |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
233 <syntax><value>function</value> | <value>module.function</value></syntax> |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
234 <default/> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
235 <context>location</context> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
236 <context>limit_except</context> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
237 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
238 <para> |
2128
59a3cc84f507
Renamed nginScript to njs
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2026
diff
changeset
|
239 Sets an njs function as a location content handler. |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
240 Since <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>, |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
241 a module function can be referenced. |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
242 </para> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
243 |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
244 </directive> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
245 |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
246 |
2773
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
247 <directive name="js_fetch_ciphers"> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
248 <syntax><value>ciphers</value></syntax> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
249 <default>HIGH:!aNULL:!MD5</default> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
250 <context>http</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
251 <context>server</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
252 <context>location</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
253 <appeared-in>0.7.0</appeared-in> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
254 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
255 <para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
256 Specifies the enabled ciphers for HTTPS requests |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
257 with <link doc="../njs/reference.xml" id="ngx_fetch">Fetch API</link>. |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
258 The ciphers are specified in the format understood by the |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
259 OpenSSL library. |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
260 </para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
261 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
262 <para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
263 The full list can be viewed using the |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
264 “<command>openssl ciphers</command>” command. |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
265 </para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
266 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
267 </directive> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
268 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
269 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
270 <directive name="js_fetch_protocols"> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
271 <syntax> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
272 [<literal>TLSv1</literal>] |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
273 [<literal>TLSv1.1</literal>] |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
274 [<literal>TLSv1.2</literal>] |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
275 [<literal>TLSv1.3</literal>]</syntax> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
276 <default>TLSv1 TLSv1.1 TLSv1.2</default> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
277 <context>http</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
278 <context>server</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
279 <context>location</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
280 <appeared-in>0.7.0</appeared-in> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
281 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
282 <para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
283 Enables the specified protocols for HTTPS requests |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
284 with <link doc="../njs/reference.xml" id="ngx_fetch">Fetch API</link>. |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
285 </para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
286 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
287 </directive> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
288 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
289 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
290 <directive name="js_fetch_trusted_certificate"> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
291 <syntax><value>file</value></syntax> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
292 <default/> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
293 <context>http</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
294 <context>server</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
295 <context>location</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
296 <appeared-in>0.7.0</appeared-in> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
297 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
298 <para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
299 Specifies a <value>file</value> with trusted CA certificates in the PEM format |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
300 used to |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
301 <link doc="../njs/reference.xml" id="fetch_verify">verify</link> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
302 the HTTPS certificate |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
303 with <link doc="../njs/reference.xml" id="ngx_fetch">Fetch API</link>. |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
304 </para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
305 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
306 </directive> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
307 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
308 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
309 <directive name="js_fetch_verify_depth"> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
310 <syntax><value>number</value></syntax> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
311 <default>100</default> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
312 <context>http</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
313 <context>server</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
314 <context>location</context> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
315 <appeared-in>0.7.0</appeared-in> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
316 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
317 <para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
318 Sets the verification depth in the HTTPS server certificates chain |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
319 with <link doc="../njs/reference.xml" id="ngx_fetch">Fetch API</link>. |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
320 </para> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
321 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
322 </directive> |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
323 |
a2852750c379
Added fetch directives to js http and stream modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2747
diff
changeset
|
324 |
2651
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
325 <directive name="js_header_filter"> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
326 <syntax><value>function</value> | <value>module.function</value></syntax> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
327 <default/> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
328 <context>location</context> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
329 <context>limit_except</context> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
330 <appeared-in>0.5.1</appeared-in> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
331 |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
332 <para> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
333 Sets an njs function as a response header filter. |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
334 The directive allows changing arbitrary header fields of a response header. |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
335 </para> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
336 |
2787
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
337 <para> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
338 <note> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
339 As the <literal>js_header_filter</literal> handler |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
340 returns its result immediately, it supports |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
341 only synchronous operations. |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
342 Thus, asynchronous operations such as |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
343 <link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
344 or |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
345 <link doc="../njs/reference.xml" id="settimeout">setTimeout()</link> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
346 are not supported. |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
347 </note> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
348 </para> |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
349 |
2651
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
350 </directive> |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
351 |
b4991bbd64ee
Documented the js_header_filter directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2534
diff
changeset
|
352 |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
353 <directive name="js_import"> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
354 <syntax><value>module.js</value> | |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
355 <value>export_name from module.js</value></syntax> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
356 <default/> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
357 <context>http</context> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
358 <appeared-in>0.4.0</appeared-in> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
359 |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
360 <para> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
361 Imports a module that implements location and variable handlers in njs. |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
362 The <literal>export_name</literal> is used as a namespace |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
363 to access module functions. |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
364 If the <literal>export_name</literal> is not specified, |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
365 the module name will be used as a namespace. |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
366 <example> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
367 js_import http.js; |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
368 </example> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
369 Here, the module name <literal>http</literal> is used as a namespace |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
370 while accessing exports. |
2680
8751cab1d562
Corrected example description in js_import.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2675
diff
changeset
|
371 If the imported module exports <literal>foo()</literal>, |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
372 <literal>http.foo</literal> is used to refer to it. |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
373 </para> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
374 |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
375 <para> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
376 Several <literal>js_import</literal> directives can be specified. |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
377 </para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
378 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
379 </directive> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
380 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
381 |
2142
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
382 <directive name="js_include"> |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
383 <syntax><value>file</value></syntax> |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
384 <default/> |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
385 <context>http</context> |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
386 |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
387 <para> |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
388 Specifies a file that implements location and variable handlers in njs: |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
389 <example> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
390 nginx.conf: |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
391 js_include http.js; |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
392 location /version { |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
393 js_content version; |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
394 } |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
395 |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
396 http.js: |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
397 function version(r) { |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
398 r.return(200, njs.version); |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
399 } |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
400 </example> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
401 </para> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
402 |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
403 <para> |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
404 The directive is deprecated since |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
405 <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>, |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
406 the <link id="js_import"/> directive should be used instead. |
2142
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
407 </para> |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
408 |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
409 </directive> |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
410 |
ca7568f67dee
Sorted directives alphabetically.
Ruslan Ermilov <ru@nginx.com>
parents:
2135
diff
changeset
|
411 |
2352
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
412 <directive name="js_path"> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
413 <syntax> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
414 <value>path</value></syntax> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
415 <default/> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
416 <context>http</context> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
417 <appeared-in>0.3.0</appeared-in> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
418 |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
419 <para> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
420 Sets an additional path for njs modules. |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
421 </para> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
422 |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
423 </directive> |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
424 |
1101e24c6d14
Documented the js_path directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2246
diff
changeset
|
425 |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
426 <directive name="js_set"> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
427 <syntax> |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
428 <value>$variable</value> <value>function</value> | |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
429 <value>module.function</value></syntax> |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
430 <default/> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
431 <context>http</context> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
432 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
433 <para> |
2686
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
434 Sets an njs <literal>function</literal> |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
435 for the specified <literal>variable</literal>. |
2530
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
436 Since <link doc="../njs/changes.xml" id="njs0.4.0">0.4.0</link>, |
407c5bd5bffc
Documented the js_import directive and corresponding changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2352
diff
changeset
|
437 a module function can be referenced. |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
438 </para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
439 |
2686
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
440 <para> |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
441 The function is called when |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
442 the variable is referenced for the first time for a given request. |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
443 The exact moment depends on a |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
444 <link doc="../dev/development_guide.xml" id="http_phases">phase</link> |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
445 at which the variable is referenced. |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
446 This can be used to perform some logic |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
447 not related to variable evaluation. |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
448 For example, if the variable is referenced only in the |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
449 <link doc="ngx_http_log_module.xml" id="log_format"/> directive, |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
450 its handler will not be executed until the log phase. |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
451 This handler can be used to do some cleanup |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
452 right before the request is freed. |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
453 </para> |
45214e5316cd
Improved description of js_set.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2680
diff
changeset
|
454 |
2747
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
455 <para> |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
456 <note> |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
457 As the <literal>js_set</literal> handler |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
458 returns its result immediately, it supports |
2787
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
459 only synchronous operations. |
005b056c267f
Added note about async calls for js_body_filter, js_header_filter.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2784
diff
changeset
|
460 Thus, asynchronous operations such as |
2747
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
461 <link doc="../njs/reference.xml" id="r_subrequest">r.subrequest()</link> |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
462 or |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
463 <link doc="../njs/reference.xml" id="settimeout">setTimeout()</link> |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
464 are not supported. |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
465 </note> |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
466 </para> |
42fb92e582db
Added note to js_set about asyncronous calls.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2693
diff
changeset
|
467 |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
468 </directive> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
469 |
2693
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
470 |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
471 <directive name="js_var"> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
472 <syntax><value>$variable</value> [<value>value</value>]</syntax> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
473 <default/> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
474 <context>http</context> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
475 <appeared-in>0.5.3</appeared-in> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
476 |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
477 <para> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
478 Declares |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
479 a <link doc="../njs/reference.xml" id="r_variables">writable</link> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
480 variable. |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
481 The value can contain text, variables, and their combination. |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
482 The variable is not overwritten after a redirect |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
483 unlike variables created with the |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
484 <link doc="ngx_http_rewrite_module.xml" id="set"/> directive. |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
485 </para> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
486 |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
487 </directive> |
3cbd6e440581
Documented the js_var directive.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2686
diff
changeset
|
488 |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
489 </section> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
490 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
491 |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
492 <section id="arguments" name="Request Argument"> |
2149
6df1a86a60b8
Added new njs HTTP properties and methods.
Roman Arutyunyan <arut@nginx.com>
parents:
2142
diff
changeset
|
493 |
6df1a86a60b8
Added new njs HTTP properties and methods.
Roman Arutyunyan <arut@nginx.com>
parents:
2142
diff
changeset
|
494 <para> |
2187
ed905ab118c7
Updated HTTP njs module according to njs 0.2.2.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2175
diff
changeset
|
495 Each HTTP njs handler receives one argument, a request |
2246
32ba43abf9cd
Renamed njs API, njs Changes.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
2245
diff
changeset
|
496 <link doc="../njs/reference.xml" id="http">object</link>. |
1840
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
497 </para> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
498 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
499 </section> |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
500 |
15632fc2d548
Documented http and stream nginScript modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff
changeset
|
501 </module> |