Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nginx
GitHub Repository: nginx/nginx.org
Path: blob/main/xml/ru/docs/njs/engine.xml
1 views
1
<?xml version="1.0"?>
2
3
<!--
4
Copyright (C) Nginx, Inc.
5
-->
6
7
<!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
8
9
<article name="Движок JavaScript"
10
link="/ru/docs/njs/engine.html"
11
lang="ru"
12
rev="6"
13
toc="no">
14
15
<section>
16
17
<para>
18
Начиная с версии <link doc="../njs/changes.xml" id="njs0.8.6">0.8.6</link>
19
поддерживается несколько JS-движков.
20
Для выбора движка используется директива <literal>js_engine</literal>
21
в
22
<link doc="../http/ngx_http_js_module.xml" id="js_engine">http</link>
23
и
24
<link doc="../stream/ngx_stream_js_module.xml" id="js_engine">stream</link>.
25
По умолчанию используется движок njs.
26
</para>
27
28
</section>
29
30
31
<section id="njs_engine" name="Движок njs">
32
33
<para>
34
<note>
35
Движок njs объявлен устаревшим
36
начиная с <link doc="changes.xml" id="njs1.0.0">1.0.0</link>;
37
для нового кода следует использовать движок
38
<link id="quickjs_engine">QuickJS</link>.
39
</note>
40
</para>
41
42
<para>
43
njs &mdash; встроенный движок JavaScript,
44
разработанный как часть модуля njs.
45
Подробнее см. в разделе <link doc="compatibility.xml">Совместимость</link>.
46
</para>
47
48
</section>
49
50
51
<section id="quickjs_engine" name="Движок QuickJS">
52
53
<para>
54
<link url="https://bellard.org/quickjs/">QuickJS</link> &mdash; компактный
55
встроенный движок JavaScript, который поддерживает
56
спецификацию <link url="https://tc39.es/ecma262/2023/">ES2023</link>,
57
включая модули, асинхронные генераторы, прокси и BigInt.
58
</para>
59
60
<para>
61
Начиная с <link doc="changes.xml" id="njs0.8.6">0.8.6</link>
62
доступна
63
оперативная замена
64
<link doc="reference.xml">njs/nginx objects</link>
65
для обеспечения совместимости с движком njs, но с некоторыми исключениями:
66
67
<list type="bullet">
68
69
<listitem>
70
API njs:
71
<link doc="reference.xml" id="njs_dump"><literal>njs.dump()</literal></link>,
72
<literal>console.dump()</literal>.
73
</listitem>
74
75
<listitem>
76
устаревшее API:
77
<literal>require()</literal>,
78
вместо необходимо использовать утверждение <literal>import</literal>.
79
</listitem>
80
81
<listitem>
82
директива <literal>js_preload_object</literal> для
83
<link doc="../http/ngx_http_js_module.xml" id="js_preload_object">http</link>
84
и
85
<link doc="../stream/ngx_stream_js_module.xml" id="js_preload_object">stream</link>.
86
</listitem>
87
88
</list>
89
90
</para>
91
92
<para>
93
статус встроенных модулей njs:
94
95
<list type="bullet">
96
97
<listitem>
98
<link doc="reference.xml" id="buffer"><literal>buffer</literal></link>:
99
начиная с <link doc="changes.xml" id="njs0.8.6">0.8.6</link>.
100
</listitem>
101
102
<listitem>
103
<link doc="reference.xml" id="crypto"><literal>crypto</literal></link>:
104
начиная с <link doc="changes.xml" id="njs0.8.10">0.8.10</link>.
105
</listitem>
106
107
<listitem>
108
<link doc="reference.xml" id="njs_api_fs"><literal>fs</literal></link>:
109
начиная с <link doc="changes.xml" id="njs0.8.9">0.8.9</link>.
110
</listitem>
111
112
<listitem>
113
<link doc="reference.xml" id="querystring"><literal>querystring</literal></link>:
114
начиная с <link doc="changes.xml" id="njs0.8.10">0.8.10</link>.
115
</listitem>
116
117
<listitem>
118
<link doc="reference.xml" id="builtin_crypto"><literal>WebCrypto</literal></link>:
119
начиная с <link doc="changes.xml" id="njs0.8.10">0.8.10</link>.
120
</listitem>
121
122
<listitem>
123
<link doc="reference.xml" id="xml"><literal>xml</literal></link>:
124
начиная с <link doc="changes.xml" id="njs0.8.10">0.8.10</link>.
125
</listitem>
126
127
<listitem>
128
<link doc="reference.xml" id="zlib"><literal>zlib</literal></link>:
129
начиная с <link doc="changes.xml" id="njs0.8.5">0.8.5</link>.
130
</listitem>
131
132
</list>
133
134
</para>
135
136
<para>
137
статус встроенных объектов njs:
138
139
<list type="bullet">
140
141
<listitem>
142
<link doc="reference.xml" id="process"><literal>process</literal></link>:
143
начиная с <link doc="changes.xml" id="njs0.8.8">0.8.8</link>.
144
</listitem>
145
146
<listitem>
147
<link doc="reference.xml" id="textdecoder"><literal>TextDecoder</literal></link>:
148
начиная с <link doc="changes.xml" id="njs0.8.10">0.8.10</link>.
149
</listitem>
150
151
<listitem>
152
<link doc="reference.xml" id="textencoder"><literal>TextEncoder</literal></link>:
153
начиная с <link doc="changes.xml" id="njs0.8.10">0.8.10</link>.
154
</listitem>
155
156
</list>
157
158
</para>
159
160
<para>
161
статус встроенных объектов nginx:
162
163
<list type="bullet">
164
165
<listitem>
166
<link doc="reference.xml" id="ngx_fetch"><literal>ngx.fetch</literal></link>:
167
начиная с <link doc="changes.xml" id="njs0.9.1">0.9.1</link>.
168
</listitem>
169
170
<listitem>
171
<link doc="reference.xml" id="ngx_shared"><literal>shared dictionary</literal></link>:
172
начиная с <link doc="changes.xml" id="njs0.8.8">0.8.8</link>.
173
</listitem>
174
175
</list>
176
177
</para>
178
179
</section>
180
181
</article>
182
183