JavaScript 引擎
从版本 0.8.6 开始,支持多种 JavaScript 引擎。要指定特定引擎,请对 http 和 stream 使用 js_engine
指令。默认使用 njs 引擎。
njs 引擎
njs 是一个可嵌入的 JavaScript 引擎,作为 njs 模块的一部分开发。详情请参阅兼容性部分。
QuickJS 引擎
QuickJS 是一个轻量级、可嵌入的 JavaScript 引擎,支持 ES2023 规范,包括模块、异步生成器、代理和 BigInt 等特性。
自版本 0.8.6 起,引入了 njs/nginx 对象 的直接替换方案,以确保与 njs 引擎的兼容性,但有以下例外情况:
- njs 特有的 API:
njs.dump()
、njs.on()
、console.dump()
。 - 已弃用的 API:
require()
,请改用import
语句。 -
针对 http 和 stream 的
js_preload_object
指令。
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
:待定。 -
shared dictionary
:自 0.8.8 版本起。