JavaScript エンジン
0.8.6 バージョン以降、複数の JavaScript エンジンがサポートされています。特定のエンジンを指定するには、http と stream の両方で使用できる js_engine
ディレクティブを使用します。デフォルトでは、njs エンジンが使用されます。
njs エンジン
njs は njs モジュールの 1 部として開発された、埋め込み可能な JavaScript エンジンです。詳細については 互換性 セクションを参照してください。
QuickJS エンジン
QuickJS は、モジュール、非同期ジェネレーター、proxy、BigInt などの機能を含む ES2023 仕様をサポートする軽量な埋め込み可能 JavaScript エンジンです。
0.8.6 バージョン以降、njs エンジンとの互換性を確保するために njs/nginx オブジェクト のドロップイン置換が導入されています。ただし、次の例外があります。
- nginx モジュール API:
ngx.fetch()
、ngx.shared.dict
。 - 組み込みモジュール:
fs
、crypto
、WebCrypto
、xml
。 - njs 固有の API:
njs.dump()
、njs.on
、console.dump()
。 -
の http と stream 用の
js_preload_object
ディレクティブ。