JavaScript 引擎
从版本 0.8.6 开始,支持多个 JavaScript 引擎。要指定特定的引擎,请使用 js_engine
指令,该指令可用于 http 和 stream。默认情况下,使用 njs 引擎。
njs 引擎
njs 是一款嵌入式 JavaScript 引擎,作为 njs 模块的一部分开发。有关详细信息,请参阅 兼容性 部分。
QuickJS 引擎
QuickJS 是一款轻量级、嵌入式 JavaScript 引擎,支持 ES2023 规范,包括模块、异步生成器、代理和 BigInt 等功能。
从版本 0.8.6 开始,引入了 njs/nginx 对象 的直接替换,以确保与 njs 引擎的兼容性,但存在以下例外情况
- Nginx 模块 API:
ngx.fetch()
、ngx.shared.dict
。 - 内置模块:
fs
、crypto
、WebCrypto
、xml
。 - Njs 专用 API:
njs.dump()
、njs.on
、console.dump()
。 -
js_preload_object
指令,用于 http 和 stream。