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 版本起。