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 引擎的相容性,但以下例外:
- nginx 模組 API:
ngx.fetch()
、ngx.shared.dict
。 - 內建模組:
fs
、crypto
、WebCrypto
、xml
。 - njs 特定 API:
njs.dump()
、njs.on
、console.dump()
。 -
適用於 http 和 stream 的
js_preload_object
指令。