Движок JavaScript
Начиная с версии 0.8.6
поддерживается несколько JS-движков.
Для выбора движка используется директива js_engine
в
http
и
stream.
По умолчанию используется движок njs.
Движок njs
njs — встроенный движок JavaScript, разработанный как часть модуля njs. Подробнее см. в разделе Совместимость.
Движок QuickJS
QuickJS — компактный встроенный движок JavaScript, который поддерживает спецификацию ES2023, включая модули, асинхронные генераторы, прокси и BigInt.
Начиная с 0.8.6 доступна оперативная замена njs/nginx objects для обеспечения совместимости с движком njs, но с некоторыми исключениями:
-
API njs:
njs.dump(),console.dump(). -
устаревшее API:
require(), вместо необходимо использовать утверждениеimport. -
директива
js_preload_objectдля http и stream.
статус встроенных модулей njs:
-
buffer: начиная с 0.8.6. -
crypto: начиная с 0.8.10. -
fs: начиная с 0.8.9. -
querystring: начиная с 0.8.10. -
WebCrypto: начиная с 0.8.10. -
xml: начиная с 0.8.10. -
zlib: начиная с 0.8.5.
статус встроенных объектов njs:
-
process: начиная с 0.8.8. -
TextDecoder: начиная с 0.8.10. -
TextEncoder: начиная с 0.8.10.
статус встроенных объектов nginx:
-
ngx.fetch: начиная с 0.9.1. -
shared dictionary: начиная с 0.8.8.