リファレンス
njsは、nginxの機能を拡張するためのオブジェクト、メソッド、プロパティを提供します。
このリファレンスには、ECMAScriptに準拠していないnjs固有のプロパティ、メソッド、モジュールのみが含まれています。ECMAScriptに準拠したnjsプロパティとメソッドの定義は、ECMAScript仕様にあります。すべてのnjsプロパティとメソッドのリストは、互換性にあります。
nginxオブジェクト
HTTPリクエスト
HTTPリクエストオブジェクトは、ngx_http_js_moduleモジュールでのみ使用できます。0.8.5より前は、オブジェクトのすべての文字列プロパティはバイト文字列でした。
r.args{}- リクエスト引数オブジェクト。読み取り専用。
クエリ文字列はオブジェクトとして返されます。0.7.6以降、重複するキーは配列として返され、キーは大文字と小文字が区別され、キーと値の両方がパーセントデコードされます。
たとえば、クエリ文字列
'a=1&b=%32&A=3&b=4&B=two%20words'
は、
r.argsとして次のように変換されます。{a: "1", b: ["2", "4"], A: "3", B: "two words"}より高度な解析シナリオは、クエリ文字列モジュールと、
$args変数で実現できます。例:import qs from 'querystring'; function args(r) { return qs.parse(r.variables.args); }引数オブジェクトは、
r.argsへの最初のアクセス時に評価されます。たとえば、fooのように単一の引数のみが必要な場合、nginx変数を使用できます。r.variables.arg_foo
ここで、nginx変数オブジェクトは、パーセントデコードせずに、大文字と小文字を区別せずに、指定されたキーの最初の値を返します。
r.argsを文字列に戻すには、クエリ文字列のstringifyメソッドを使用できます。 r.done()- この関数を呼び出した後、次のデータチャンクは、js_body_filterを呼び出すことなくクライアントに渡されます(0.5.2)。js_body_filter関数からのみ呼び出すことができます。
r.error(文字列)文字列をログのerrorレベルでエラーログに書き込みますnginxにはハードコードされた最大行長制限があるため、文字列の最初の2048バイトのみがログに記録できます。
r.finish()- クライアントへの応答の送信を終了します
r.headersIn{}- 受信ヘッダーオブジェクト。読み取り専用。
Fooリクエストヘッダーには、headersIn.fooまたはheadersIn['Foo']という構文でアクセスできます。「Authorization」、「Content-Length」、「Content-Range」、「Content-Type」、「ETag」、「Expect」、「From」、「Host」、「If-Match」、「If-Modified-Since」、「If-None-Match」、「If-Range」、「If-Unmodified-Since」、「Max-Forwards」、「Proxy-Authorization」、「Referer」、「Transfer-Encoding」、および「User-Agent」リクエストヘッダーには、1つのフィールド値しか持つことができません(0.4.1)。「Cookie」ヘッダーの重複するフィールド値はセミコロン(
;)で区切られます。他のすべてのリクエストヘッダーの重複するフィールド値は、コンマで区切られます。 r.headersOut{}- メインリクエストの送信ヘッダーオブジェクト。書き込み可能。
r.headersOut{}がサブリクエストの応答オブジェクトである場合、応答ヘッダーを表します。この場合、「Accept-Ranges」、「Connection」、「Content-Disposition」、「Content-Encoding」、「Content-Length」、「Content-Range」、「Date」、「Keep-Alive」、「Server」、「Transfer-Encoding」、「X-Accel-*」応答ヘッダーのフィールド値は省略できます。「Foo」応答ヘッダーには、
headersOut.fooまたはheadersOut['Foo']という構文でアクセスできます。送信ヘッダーは、応答ヘッダーがクライアントに送信される前に設定する必要があります。そうしないと、ヘッダーの更新は無視されます。これは、
r.headersOut{}が- js_contentハンドラーで、
r.sendHeader()またはr.return()が呼び出される前に効果的に書き込み可能であることを意味します。 - js_header_filterハンドラー
マルチ値応答ヘッダーのフィールド値(0.4.0)は、次の構文で設定できます。
r.headersOut['Foo'] = ['a', 'b']
ここで、出力は次のようになります
Foo: a Foo: b
「Foo」応答ヘッダーの以前のすべてのフィールド値は削除されます。
「Content-Type」などの単一のフィールド値のみを受け入れる標準応答ヘッダーの場合、配列の最後の要素のみが有効になります。「Set-Cookie」応答ヘッダーのフィールド値は常に配列として返されます。「Age」、「Content-Encoding」、「Content-Length」、「Content-Type」、「ETag」、「Expires」、「Last-Modified」、「Location」、「Retry-After」応答ヘッダーの重複するフィールド値は無視されます。他のすべての応答ヘッダーの重複するフィールド値は、コンマで区切られます。
- js_contentハンドラーで、
r.httpVersion- HTTPバージョン。読み取り専用
r.internal- 内部ロケーションの場合、ブール値はtrueです。
r.internalRedirect(uri)- 指定された
uriへの内部リダイレクトを実行します。uriが「@」プレフィックスで始まる場合、名前付きロケーションと見なされます。新しいロケーションでは、すべてのリクエスト処理が、通常のロケーションの場合はNGX_HTTP_SERVER_REWRITE_PHASEから、名前付きロケーションの場合はNGX_HTTP_REWRITE_PHASEから繰り返されます。その結果、名前付きロケーションへのリダイレクトは、client_max_body_size制限をチェックしません。詳細については、開発ガイドを参照してください。リダイレクトされたリクエストは内部になり、内部ロケーションにアクセスできます。実際のリダイレクトは、ハンドラーの実行が完了した後に発生します。リダイレクト後、新しいnjs VMがターゲットロケーションで開始され、元のロケーションのVMは停止します。nginx変数の値は保持され、ターゲットロケーションに情報を渡すために使用できます。0.5.3以降、httpまたはstreamの
js_varディレクティブで宣言された変数を使用できます。0.7.4以降、このメソッドはエスケープされたURIを受け入れます。
r.log(文字列)文字列をログのinfoレベルでエラーログに書き込みますnginxにはハードコードされた最大行長制限があるため、文字列の最初の2048バイトのみがログに記録できます。
r.method- HTTPメソッド。読み取り専用
r.parent- 親リクエストオブジェクトを参照します
r.remoteAddress- クライアントアドレス。読み取り専用
r.requestBody- このプロパティは、0.5.0で廃止され、0.8.0で削除されました。代わりに
r.requestBufferまたはr.requestTextプロパティを使用する必要があります。 r.requestBuffer- クライアントリクエストボディが一時ファイルに書き込まれていない場合(0.5.0以降)。クライアントリクエストボディがメモリ内にあることを確認するには、そのサイズをclient_max_body_sizeで制限し、client_body_buffer_sizeを使用して十分なバッファーサイズを設定する必要があります。このプロパティは、js_contentディレクティブでのみ使用できます。
r.requestTextr.requestBufferと同じですが、文字列を返します。UTF-8エンコーディングで無効なバイトは置換文字に変換される可能性があることに注意してください。r.rawHeadersIn[]- クライアントから受信したとおりに、キーと値のペアの配列を返します(0.4.1)。
たとえば、次のリクエストヘッダーを使用した場合
Host: localhost Foo: bar foo: bar2
r.rawHeadersInの出力は次のようになります。[ ['Host', 'localhost'], ['Foo', 'bar'], ['foo', 'bar2'] ]すべての
fooヘッダーは、次の構文で収集できます。r.rawHeadersIn.filter(v=>v[0].toLowerCase() == 'foo').map(v=>v[1])
出力は次のようになります
['bar', 'bar2']
ヘッダーフィールド名は小文字に変換されず、重複するフィールド値はマージされません。
r.rawHeadersOut[]- 応答ヘッダーのキーと値のペアの配列を返します(0.4.1)。ヘッダーフィールド名は小文字に変換されず、重複するフィールド値はマージされません。
r.responseBody- このプロパティは、0.5.0で廃止され、0.8.0で削除されました。代わりに、
r.responseBufferまたはr.responseTextプロパティを使用する必要があります。 r.responseBuffer- サブリクエスト応答ボディを保持します。読み取り専用(0.5.0以降)。
r.responseBufferのサイズは、subrequest_output_buffer_sizeディレクティブによって制限されます。 r.responseTextr.responseBufferと同じですが、文字列を返します(0.5.0以降)。UTF-8エンコーディングで無効なバイトは置換文字に変換される可能性があることに注意してください。r.return(ステータス[, 文字列 | Buffer])- 指定された
ステータスで応答全体をクライアントに送信します。応答は文字列またはBufferにすることができます(0.5.0)。リダイレクトURL(コード301、302、303、307、および308の場合)または応答本文テキスト(その他のコードの場合)を2番目の引数として指定できます
r.send(文字列 | Buffer)- 応答本文の一部をクライアントに送信します。送信されるデータは、文字列またはBufferにすることができます(0.5.0)。
r.sendBuffer(data[,options])- 次のボディフィルターに転送されるデータチャンクのチェーンにデータを追加します(0.5.2)。実際の転送は、現在のチェーンのすべてのデータチャンクが処理された後で後で行われます。
データは、文字列またはBufferにすることができます。
optionsは、受信データチャンクバッファーから派生したnginxバッファーフラグをオーバーライドするために使用されるオブジェクトです。フラグは、次のフラグでオーバーライドできます。last- ブール値。バッファーが最後のバッファーの場合はtrue
flush- ブール値。バッファーに
flushフラグがある必要がある場合はtrue
このメソッドは、js_body_filter関数からのみ呼び出すことができます。 r.sendHeader()- HTTPヘッダーをクライアントに送信します
r.setReturnValue(値)- js_setハンドラーの戻り値を設定します(0.7.0)。通常のreturnステートメントとは異なり、ハンドラーがJS非同期関数の場合はこのメソッドを使用する必要があります。例:
async function js_set(r) { const digest = await crypto.subtle.digest('SHA-256', r.headersIn.host); r.setReturnValue(digest); } r.status- ステータス。書き込み可能
r.subrequest(uri[,options[,callback]])- 指定された
uriとoptionsでサブリクエストを作成し、オプションの完了callbackをインストールします。サブリクエストは、クライアントリクエストと入力ヘッダーを共有します。元のヘッダーとは異なるヘッダーをプロキシサーバーに送信するには、proxy_set_headerディレクティブを使用できます。完全に新しいヘッダーセットをプロキシサーバーに送信するには、proxy_pass_request_headersディレクティブを使用できます。
optionsが文字列の場合、サブリクエスト引数文字列を保持します。それ以外の場合、optionsは次のキーを持つオブジェクトであると想定されます。args- 引数文字列。デフォルトでは空の文字列が使用されます。
body- リクエストボディ。デフォルトでは、親リクエストオブジェクトのリクエストボディが使用されます。
method- HTTPメソッド。デフォルトでは
GETメソッドが使用されます。 分離(detached)- booleanフラグ(0.3.9)。
trueの場合、作成されたサブリクエストは分離されたサブリクエストです。分離されたサブリクエストへの応答は無視されます。通常のサブリクエストとは異なり、分離されたサブリクエストは変数ハンドラ内で作成できます。detachedフラグとコールバック引数は相互に排他的です。
完了
callbackは、親リクエストオブジェクトと同じメソッドとプロパティを持つサブリクエスト応答オブジェクトを受け取ります。0.3.8以降、
callbackが提供されない場合、サブリクエスト応答オブジェクトに解決されるPromiseオブジェクトが返されます。たとえば、サブリクエスト内のすべての応答ヘッダーを表示するには、次のようにします。
async function handler(r) { const reply = await r.subrequest('/path'); for (const h in reply.headersOut) { r.log(`${h}: ${reply.headersOut[h]}`); } r.return(200); } r.uri- リクエスト内の現在のURI、正規化済み、読み取り専用
r.rawVariables{}- nginxの変数(Bufferとして)、書き込み可能(0.5.0以降)
r.variables{}-
nginx変数オブジェクト、書き込み可能(0.2.8以降)。
たとえば、
$foo変数を取得するには、次のいずれかの構文を使用できます。r.variables['foo'] r.variables.foo
0.8.6以降、次の構文を使用して正規表現キャプチャにアクセスできます。
r.variables['1'] r.variables[1]
nginxは、
nginx.confで参照される変数と参照されない変数を異なる方法で扱います。変数が参照されている場合、キャッシュ可能である可能性がありますが、参照されていない場合は常にキャッシュできません。たとえば、$request_id変数がnjsからのみアクセスされる場合、評価されるたびに新しい値になります。ただし、$request_idが参照されている場合、たとえばproxy_set_header X-Request-Id $request_id;
r.variables.request_idは毎回同じ値を返します。変数が書き込み可能なのは、次のいずれかの場合です。
それでも、一部の組み込み変数には値を割り当てることができません(たとえば、
$http_)。 r.warn(string)- ログの
warningレベルでエラーログにstringを書き込みますnginxにはハードコードされた最大行長制限があるため、文字列の最初の2048バイトのみがログに記録できます。
ストリームセッション
ストリームセッションオブジェクトは、ngx_stream_js_moduleモジュールでのみ使用可能です。0.8.5より前は、オブジェクトのすべての文字列プロパティはバイト文字列でした。
s.allow()s.done(0)のエイリアス(0.2.4)s.decline()s.done(-5)のエイリアス(0.2.4)s.deny()s.done(403)のエイリアス(0.2.4)s.done([)code])- 現在のフェーズハンドラの終了
codeをコード値に設定します。デフォルトは0です。実際の終了処理は、jsハンドラが完了し、ngx.fetch()やsetTimeout()などからの保留中のイベントがすべて処理されたときに行われます(0.2.4)。可能なコード値
-
0— 正常な終了処理。制御を次のフェーズに渡します。 -
-5— 未決定。制御を現在のフェーズの次のハンドラ(存在する場合)に渡します。 -
403— アクセスが禁止されています。
フェーズハンドラ関数:js_accessまたはjs_prereadからのみ呼び出すことができます。 -
s.error(string)- 送信された
stringをログのerrorレベルでエラーログに書き込みますnginxにはハードコードされた最大行長制限があるため、文字列の最初の2048バイトのみがログに記録できます。
s.log(string)- 送信された
stringをログのinfoレベルでエラーログに書き込みますnginxにはハードコードされた最大行長制限があるため、文字列の最初の2048バイトのみがログに記録できます。
s.off(eventName)- s.on()メソッドで設定されたコールバックの登録を解除します(0.2.4)
s.on(event,callback)- 指定された
eventのcallbackを登録します(0.2.4)。eventは、次のいずれかの文字列です。upload- クライアントからの新しいデータ(文字列)
ダウンロード- クライアントへの新しいデータ(文字列)
upstream- クライアントからの新しいデータ(Buffer)(0.5.0以降)
downstream- クライアントへの新しいデータ(Buffer)(0.5.0以降)
完了コールバックには次のプロトタイプがあります:
callback(data, flags)。ここで、dataは文字列またはBuffer(イベントの種類によって異なります)、flagsは次のプロパティを持つオブジェクトです。last- boolean値。データが最後のバッファの場合はtrue。
s.remoteAddress- クライアントアドレス。読み取り専用
s.rawVariables- nginxの変数(Bufferとして)、書き込み可能(0.5.0以降)
s.send(data[,options])- 順方向(ダウンロードコールバックの場合はクライアントへ、アップロードの場合はアップストリームサーバーへ)に転送されるデータチャンクのチェーンにデータを追加します(0.2.4)。実際の転送は、現在のチェーンのすべてのデータチャンクが処理された後に行われます。
データは文字列またはBufferにすることができます(0.5.0)。
optionsは、受信データチャンクバッファから派生したnginxバッファフラグをオーバーライドするために使用されるオブジェクトです。フラグは、次のフラグでオーバーライドできます。last- ブール値。バッファーが最後のバッファーの場合はtrue
flush- ブール値。バッファーに
flushフラグがある必要がある場合はtrue
このメソッドは、コールバックの呼び出しごとに複数回呼び出すことができます。 s.sendDownstream()- s.send()と同一ですが、常にクライアントにデータを送信します(0.7.8以降)。
s.sendUpstream()- s.send()と同一ですが、常にクライアントからデータを送信します(0.7.8以降)。
s.status- セッションステータスコード。
$status変数のエイリアスで、読み取り専用です(0.5.2以降)。 s.setReturnValue(value)- js_setハンドラの戻り値を設定します(0.7.0)。通常のreturn文とは異なり、このメソッドはハンドラがJS非同期関数の場合に使用する必要があります。例えば、
async function js_set(r) { const digest = await crypto.subtle.digest('SHA-256', r.headersIn.host); r.setReturnValue(digest); } s.variables{}- nginx変数オブジェクト、書き込み可能(0.2.8以降)。変数が書き込み可能になるのは、nginx構成ファイルで参照されている場合のみです。それでも、一部の組み込み変数には値を割り当てることができません。
s.warn(string)- 送信された
stringをログのwarningレベルでエラーログに書き込みますnginxにはハードコードされた最大行長制限があるため、文字列の最初の2048バイトのみがログに記録できます。
定期セッション
PeriodicSession.rawVariables{} |
PeriodicSession.variables{} |
Periodic Sessionオブジェクトは、httpおよびstreamのjs_periodicハンドラの最初の引数として提供されます(0.8.1以降)。
PeriodicSession.rawVariables{}- nginxの変数(Bufferとして)、書き込み可能。
PeriodicSession.variables{}- nginx変数オブジェクト、書き込み可能。
ヘッダー
Headers() |
Headers.append() |
Headers.delete() |
Headers.get() |
Headers.getAll() |
Headers.forEach() |
Headers.has() |
Headers.set() |
Fetch APIのHeadersインターフェースは、0.5.1以降で使用可能です。
新しいHeadersオブジェクトは、Headers()コンストラクタを使用して作成できます(0.7.10以降)。
Headers([init])-
initHeadersオブジェクトに事前にデータを設定するためのHTTPヘッダーを含むオブジェクト。string、名前と値のペアのarray、または既存のHeadersオブジェクトにすることができます。
新しいHeadersオブジェクトは、次のプロパティとメソッドで作成できます。
append()Headersオブジェクト内の既存のヘッダーに新しい値を追加するか、ヘッダーが存在しない場合はヘッダーを追加します(0.7.10以降)。delete()Headersオブジェクトからヘッダーを削除します(0.7.10以降)。get()- 指定された名前のすべてのヘッダーの値をカンマとスペースで区切って含む文字列を返します。
getAll(name)- 指定された名前のすべてのヘッダーの値を含む配列を返します。
forEach()Headersオブジェクト内の各キーと値のペアに対して、指定された関数を一度実行します(0.7.10以降)。has()- 指定された名前のヘッダーが存在するかどうかを示すboolean値を返します。
set()Headersオブジェクト内の既存のヘッダーの新しい値を設定するか、ヘッダーが存在しない場合はヘッダーを追加します(0.7.10以降)。
リクエスト
Request() |
Request.arrayBuffer() |
Request.bodyUsed |
Request.cache |
Request.credentials |
Request.headers |
Request.json() |
Request.method |
Request.mode |
Request.text() |
Request.url |
Fetch APIのRequestインターフェースは、0.7.10以降で使用可能です。
新しいRequestオブジェクトは、Request()コンストラクタを使用して作成できます
Request[resource[,options]]ngx.fetch()に後で渡すことができるフェッチ用のRequestオブジェクトを作成します。resourceはURLまたは既存のRequestオブジェクトにすることができます。optionsは、次のキーを持つオブジェクトであると予想されるオプションの引数です。
新しいRequestオブジェクトは、次のプロパティとメソッドで作成できます。
arrayBuffer()ArrayBufferで解決されるPromiseを返します。bodyUsed- リクエストでボディが使用された場合は
trueのboolean値。 cache- リクエストのキャッシュモードが含まれます。
credentials- リクエストの資格情報が含まれます。デフォルトは
same-originです。 headersRequestに関連付けられたHeaders読み取り専用オブジェクト。json()- リクエストボディをJSONとして解析した結果で解決される
Promiseを返します。 method- リクエストメソッドが含まれます。
mode- リクエストのモードが含まれます。
text()- リクエストボディの文字列表現で解決される
Promiseを返します。 url- リクエストのURLが含まれます。
レスポンス
Response() |
Response.arrayBuffer() |
Response.bodyUsed |
Response.headers |
Response.json() |
Response.ok |
Response.redirected |
Response.status |
Response.statusText |
Response.text() |
Response.type |
Response.url |
Responseインターフェースは、0.5.1以降で使用可能です。
新しいResponseオブジェクトは、Response()コンストラクタを使用して作成できます(0.7.10以降)
Response[body[,options]]Responseオブジェクトを作成します。bodyはオプションの引数で、stringまたはbufferにすることができ、デフォルトはnullです。optionsは、次のキーを持つオブジェクトであると予想されるオプションの引数です。
新しいResponse()オブジェクトは、次のプロパティとメソッドを使用して作成できます。
arrayBuffer()Responseストリームを受け取り、完了まで読み込みます。ArrayBufferで解決されるPromiseを返します。bodyUsed- ボディが読み込まれた場合は
trueとなるブール値。 headersResponseに関連付けられた読み取り専用のHeadersオブジェクト。json()Responseストリームを受け取り、完了まで読み込みます。ボディテキストをJSONとして解析した結果で解決されるPromiseを返します。ok- レスポンスが成功した場合(ステータスコードが200〜299の場合)は
trueとなるブール値。 redirected- レスポンスがリダイレクトの結果である場合は
trueとなるブール値。 status- 応答のステータスコード。
statusText- ステータスコードに対応するステータスメッセージ。
text()Responseストリームを受け取り、完了まで読み込みます。文字列で解決されるPromiseを返します。type- レスポンスのタイプ。
url- レスポンスのURL。
ngx
ngx.build |
ngx.conf_file_path |
ngx.conf_prefix |
ngx.error_log_path |
ngx.fetch() |
ngx.log() |
ngx.prefix |
ngx.version |
ngx.version_number |
ngx.worker_id |
ngxグローバルオブジェクトは0.5.0以降で利用可能です。
ngx.build- オプションのnginxビルド名を含む文字列で、
--build=name引数に対応します。configureスクリプトの引数に対応し、デフォルトは""です(0.8.0)。 ngx.conf_file_path- 現在のnginx設定ファイルへのファイルパスを含む文字列です(0.8.0)。
ngx.conf_prefix- nginx設定プレフィックスへのファイルパスを含む文字列です。これは、nginxが現在設定を探しているディレクトリです(0.7.8)。
ngx.error_log_path- 現在のエラーログファイルへのファイルパスを含む文字列です(0.8.0)。
ngx.fetch(resource, [options])-
resource(0.5.1) を取得するためのリクエストを行います。これはURLまたはRequestオブジェクト(0.7.10)にすることができます。Responseオブジェクトで解決されるPromiseを返します。0.7.0以降、https://スキームがサポートされ、リダイレクトは処理されません。resourceのURLがドメイン名として指定されている場合、リゾルバーを使用して決定されます。https://スキームが指定されている場合、resourceのHTTPSサーバーの認証のために、js_fetch_trusted_certificateディレクティブを設定する必要があります。optionsパラメータは、次のキーを持つオブジェクトであると想定されます。body- リクエストボディ。デフォルトは空です。
buffer_size- レスポンスを読み込むためのバッファサイズ。デフォルトは
4096です。 headers- リクエストヘッダーオブジェクト
max_response_body_size- レスポンスボディの最大サイズ(バイト単位)。デフォルトは
32768です。 method- HTTPメソッド。デフォルトでは
GETメソッドが使用されます。 verify- HTTPSサーバー証明書の検証を有効または無効にします。デフォルトは
trueです(0.7.0)。
例
let reply = await ngx.fetch('https://nginx.dokyumento.jp/'); let body = await reply.text(); r.return(200, body); ngx.log(level,message)- 指定されたログレベルでエラーログにメッセージを書き込みます。
levelパラメータはログレベルの1つを指定し、messageパラメータは文字列またはBufferにすることができます。指定できるログレベルは、ngx.INFO、ngx.WARN、およびngx.ERRです。nginxにはハードコードされた最大行長制限があるため、文字列の最初の2048バイトのみがログに記録できます。
ngx.prefix- nginxプレフィックスへのファイルパスを含む文字列です。これはサーバーファイルを保持するディレクトリです(0.8.0)。
ngx.version- nginxバージョンを含む文字列です。例:
1.25.0(0.8.0)。 ngx.version_number- nginxバージョンを含む数値です。例:
1025000(0.8.0)。 ngx.worker_id- nginx内部のワーカーIDに対応する数値で、値は
0からworker_processesディレクティブで指定された値の間です(0.8.0)。
ngx.shared
ngx.sharedグローバルオブジェクトは、0.8.0以降で使用可能です。
SharedDict
共有辞書オブジェクトは、0.8.0以降で使用可能です。共有辞書の名前、タイプ、サイズは、httpまたはstreamのjs_shared_dict_zoneディレクティブで設定されます。
SharedDict()オブジェクトには、次のプロパティとメソッドがあります。
ngx.shared.SharedDict.add(key,value[,timeout])- キーがまだ存在しない場合にのみ、指定された
keyのvalueを辞書に設定します。keyは、追加する項目のキーを表す文字列で、valueは追加する項目の値です。オプションの
timeout引数はミリ秒単位で指定され、httpまたはstreamのjs_shared_dict_zoneディレクティブのtimeoutパラメータをオーバーライドします(0.8.5以降)。一部のキーに固有のタイムアウトを設定する必要がある場合に便利です。値が
SharedDict辞書に正常に追加された場合はtrueを返し、キーが既に辞書に存在する場合はfalseを返します。SharedDict辞書に十分な空き領域がない場合はSharedMemoryErrorをスローします。valueがこの辞書で想定されるタイプと異なる場合はTypeErrorをスローします。 ngx.shared.SharedDict.capacitySharedDict辞書の容量を返します。これは、httpまたはstreamのjs_shared_dict_zoneディレクティブのsizeパラメータに対応します。ngx.shared.SharedDict.clear()SharedDict辞書からすべての項目を削除します。ngx.shared.SharedDict.delete(key)- 指定されたキーに関連付けられた項目を
SharedDict辞書から削除します。辞書に項目が存在し、削除された場合はtrueを返し、それ以外の場合はfalseを返します。 ngx.shared.SharedDict.freeSpace()- 空きページサイズをバイト単位で返します。サイズがゼロの場合でも、占有されているページに空きがある場合は、
SharedDict辞書は新しい値を受け入れます。 ngx.shared.SharedDict.get(key)keyによって項目を取得し、keyに関連付けられた値を返します。存在しない場合はundefinedを返します。ngx.shared.SharedDict.has(key)keyで項目を検索し、そのような項目が存在する場合はtrueを返し、それ以外の場合はfalseを返します。ngx.shared.SharedDict.incr(key,delta[[,init],timeout]])keyに関連付けられた整数値をdeltaでインクリメントします。keyは文字列、deltaは値をインクリメントまたはデクリメントする数値です。キーが存在しない場合、項目はオプションのinit引数で初期化されます。デフォルトは0です。オプションの
timeout引数はミリ秒単位で指定され、httpまたはstreamのjs_shared_dict_zoneディレクティブのtimeoutパラメータをオーバーライドします(0.8.5以降)。一部のキーに固有のタイムアウトを設定する必要がある場合に便利です。新しい値を返します。
SharedDict辞書に十分な空き領域がない場合は、SharedMemoryErrorをスローします。この辞書が数値を想定していない場合は、TypeErrorをスローします。このメソッドは、辞書のタイプがhttpまたはstreamの
js_shared_dict_zoneディレクティブのtype=numberパラメータで宣言されている場合にのみ使用できます。ngx.shared.SharedDict.items([maxCount])SharedDict辞書のキーと値の項目の配列を返します(0.8.1以降)。maxCountパラメータは、取得する項目の最大数を設定します。デフォルトは1024です。ngx.shared.SharedDict.keys([maxCount])SharedDict辞書のキーの配列を返します。maxCountパラメータは、取得するキーの最大数を設定します。デフォルトは1024です。ngx.shared.SharedDict.nameSharedDict辞書の名前を返します。これは、httpまたはstreamのjs_shared_dict_zoneディレクティブのzone=パラメータに対応します。ngx.shared.SharedDict.pop(key)- 指定された
keyに関連付けられた項目をSharedDict辞書から削除し、keyに関連付けられた値を返します。存在しない場合はundefinedを返します。 ngx.shared.SharedDict.replace(key,value)- キーが既に存在する場合にのみ、指定された
keyのvalueを置き換えます。値が正常に置き換えられた場合はtrueを返し、キーがSharedDict辞書に存在しない場合はfalseを返します。SharedDict辞書に十分な空き領域がない場合はSharedMemoryErrorをスローします。valueがこの辞書で想定されるタイプと異なる場合はTypeErrorをスローします。 ngx.shared.SharedDict.set(key,value[,timeout])- 指定された
keyのvalueを設定し、このSharedDict辞書を返します(メソッドチェーン用)。オプションの
timeout引数はミリ秒単位で指定され、httpまたはstreamのjs_shared_dict_zoneディレクティブのtimeoutパラメータをオーバーライドします(0.8.5以降)。一部のキーに固有のタイムアウトを設定する必要がある場合に便利です。 ngx.shared.SharedDict.size()SharedDict辞書の項目数を返します。ngx.shared.SharedDict.type- httpまたはstreamの
js_shared_dict_zoneディレクティブのtype=パラメータで設定されたSharedDict辞書タイプに対応するstringまたはnumberを返します。
組み込みオブジェクト
コンソール
console.error() |
console.info() |
console.log() |
console.time() |
console.timeEnd() |
console.warn() |
consoleオブジェクトは、nginxでは0.8.2以降、CLIでは0.2.6以降で使用可能です。
console.error(msg[,msg2...])- 1つ以上のエラーメッセージを出力します。メッセージは文字列またはオブジェクトにすることができます。
console.info(msg[,msg2...])- 1つ以上の情報メッセージを出力します。メッセージは文字列またはオブジェクトにすることができます。
console.log(msg[,msg2...])- 1つ以上のログメッセージを出力します。メッセージは文字列またはオブジェクトにすることができます。
console.time(label)- 操作にかかる時間を追跡できるタイマーを開始します。
labelパラメータを使用すると、異なるタイマーに名前を付けることができます。console.timeEnd()が同じ名前で呼び出された場合、タイマーが開始されてからの経過時間(ミリ秒単位)が出力されます。 console.timeEnd(label)- 以前に
console.time()で開始されたタイマーを停止します。labelパラメータを使用すると、異なるタイマーに名前を付けることができます。 console.warn(msg[,msg2...])- 1つ以上の警告メッセージを出力します。メッセージは文字列またはオブジェクトにすることができます。
crypto
cryptoオブジェクトは、暗号化機能の使用を可能にするグローバルオブジェクトです(0.7.0以降)。
сrypto.getRandomValues(typedArray)- 暗号学的に強力な乱数値を取得します。
typedArrayとして渡されたものと同じ配列を返しますが、その内容は新しく生成された乱数で置き換えられています。可能な値typedArrayInt8Array、Int16Array、Uint16Array、Int32Array、またはUint32Arrayにすることができます。
сrypto.subtle.encrypt(algorithm、key、data)- 提供された
algorithmとkeyを使用して、dataを暗号化します。暗号テキストを含むArrayBufferで解決されるPromiseを返します。可能な値algorithm- 使用するアルゴリズムと必要な追加パラメータを指定するオブジェクト
RSA-OAEPの場合は、次のキーを持つオブジェクトを渡します。-
nameは文字列で、RSA-OAEPに設定する必要がありますcrypto.subtle.encrypt({name: "RSA-OAEP"}, key, data)
-
AES-CTRの場合は、次のキーを持つオブジェクトを渡します。-
nameは文字列で、AES-CTRに設定する必要があります。 -
counterはArrayBuffer、TypedArray、またはDataViewであり、カウンターブロックの初期値です。16バイト長(AESブロックサイズ)である必要があります。このブロックの右端から length ビットがカウンターに使用され、残りがnonceに使用されます。例えば、length が 64 に設定されている場合、counter の前半がnonceで、後半がカウンターに使用されます。 -
lengthは、実際のカウンターに使用されるカウンターブロック内のビット数です。カウンターはラップしないように十分に大きくする必要があります。
-
AES-CBCの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、AES-CBCに設定する必要があります。 -
ivまたは初期化ベクトルは、ArrayBuffer、TypedArray、またはDataViewであり、16バイトである必要があります。予測不可能で、できれば暗号学的にランダムである必要があります。ただし、秘密である必要はなく、例えば、暗号化されていない状態で暗号文と一緒に送信することができます。
-
AES-GCMの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、AES-GCMに設定する必要があります。 -
ivまたは初期化ベクトルは、ArrayBuffer、TypedArray、またはDataViewであり、16バイトである必要があります。また、指定されたキーを使用して実行されるすべての暗号化操作に対して一意である必要があります。 -
additionalData(オプション)は、暗号化されないが、暗号化されたデータと一緒に認証される追加データを含むArrayBuffer、TypedArray、またはDataViewです。additionalDataが指定されている場合、対応するdecrypt()の呼び出しで同じデータを指定する必要があります。decrypt()の呼び出しに与えられたデータが元のデータと一致しない場合、復号化は例外をスローします。additionalDataのビット長は2^64 - 1より小さくする必要があります。 -
tagLength(オプション、デフォルトは128) - 暗号化操作で生成され、対応する復号化での認証に使用される認証タグのサイズをビット単位で決定するnumberです。可能な値:32、64、96、104、112、120、または128。AES-GCM の仕様では、96、104、112、120、または128にすることを推奨していますが、一部のアプリケーションでは32または64ビットも許容される場合があります。
-
key- 暗号化に使用するキーを含む
CryptoKey。 data- 暗号化するデータ(平文とも呼ばれる)を含む
ArrayBuffer、TypedArray、またはDataView。
сrypto.subtle.decrypt(algorithm,key,data)- 暗号化されたデータを復号化します。復号化されたデータを含む
Promiseを返します。可能な値algorithm- 使用するアルゴリズムと、必要に応じて追加のパラメータを指定するオブジェクト。追加のパラメータに指定された値は、対応する
encrypt()の呼び出しに渡された値と一致する必要があります。RSA-OAEPの場合は、次のキーを持つオブジェクトを渡します。-
nameは文字列で、RSA-OAEPに設定する必要がありますcrypto.subtle.encrypt({name: "RSA-OAEP"}, key, data)
-
AES-CTRの場合は、次のキーを持つオブジェクトを渡します。-
nameは文字列で、AES-CTRに設定する必要があります。 -
counterはArrayBuffer、TypedArray、またはDataViewであり、カウンターブロックの初期値です。16バイト長(AESブロックサイズ)である必要があります。このブロックの右端から length ビットがカウンターに使用され、残りがnonceに使用されます。例えば、length が 64 に設定されている場合、counter の前半がnonceで、後半がカウンターに使用されます。 -
lengthは、実際のカウンターに使用されるカウンターブロック内のビット数です。カウンターはラップしないように十分に大きくする必要があります。
-
AES-CBCの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、AES-CBCに設定する必要があります。 -
ivまたは初期化ベクトルは、ArrayBuffer、TypedArray、またはDataViewであり、16バイトである必要があります。予測不可能で、できれば暗号学的にランダムである必要があります。ただし、秘密である必要はありません(例えば、暗号化されていない状態で暗号文と一緒に送信することができます)。
-
AES-GCMの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、AES-GCMに設定する必要があります。 -
ivまたは初期化ベクトルは、ArrayBuffer、TypedArray、またはDataViewであり、16バイトである必要があります。また、指定されたキーを使用して実行されるすべての暗号化操作に対して一意である必要があります。 -
additionalData(オプション)は、暗号化されないが、暗号化されたデータと一緒に認証される追加データを含むArrayBuffer、TypedArray、またはDataViewです。additionalDataが指定されている場合、対応するdecrypt()の呼び出しで同じデータを指定する必要があります。decrypt()の呼び出しに与えられたデータが元のデータと一致しない場合、復号化は例外をスローします。additionalDataのビット長は2^64 - 1より小さくする必要があります。 -
tagLength(オプション、デフォルトは128) - 暗号化操作で生成され、対応する復号化での認証に使用される認証タグのサイズをビット単位で決定するnumberです。可能な値:32、64、96、104、112、120、または128。AES-GCM の仕様では、96、104、112、120、または128にすることを推奨していますが、一部のアプリケーションでは32または64ビットも許容される場合があります。
-
key- 復号化に使用するキーを含む
CryptoKey。RSA-OAEPが使用される場合、これはCryptoKeyPairオブジェクトのprivateKeyプロパティです。 data- 復号化するデータ(暗号文とも呼ばれる)を含む
ArrayBuffer、TypedArray、またはDataView。
сrypto.subtle.deriveBits(algorithm,baseKey,length)- ベースキーからビットの配列を導出します。導出されたビットを含む
ArrayBufferで満たされるPromiseを返します。可能な値algorithm- 使用する導出アルゴリズムを定義するオブジェクトです。
HKDFの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、HKDFに設定する必要があります。 -
hashは、使用するダイジェストアルゴリズムを含む文字列です:SHA-1、SHA-256、SHA-384、またはSHA-512。 -
saltは、digest関数の出力と同じ長さのランダムまたは擬似ランダムな値を表すArrayBuffer、TypedArray、またはDataViewです。deriveKey()に渡される入力キーマテリアルとは異なり、salt は秘密にしておく必要はありません。 -
infoは、導出されたキーをアプリケーションまたはコンテキストにバインドするために使用されるアプリケーション固有のコンテキスト情報を表すArrayBuffer、TypedArray、またはDataViewです。同じ入力キーマテリアルを使用しながら、異なるコンテキストに対して異なるキーを導出できます。このプロパティは必須ですが、空のバッファにすることもできます。
-
PBKDF2の場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、PBKDF2に設定する必要があります。 -
hashは、使用するダイジェストアルゴリズムを含む文字列です:SHA-1、SHA-256、SHA-384、またはSHA-512。 -
saltは、少なくとも16バイトのランダムまたは擬似ランダムな値を表すArrayBuffer、TypedArray、またはDataViewです。deriveKey()に渡される入力キーマテリアルとは異なり、salt は秘密にしておく必要はありません。 -
iterationsは、deriveKey()でハッシュ関数が実行される回数を表すnumberです。
-
baseKey- 導出アルゴリズムへの入力を表す
CryptoKeyで、導出関数の初期キーマテリアルです。例えば、PBKDF2の場合、パスワードであり、сrypto.subtle.importKey()を使用してCryptoKeyとしてインポートされる可能性があります。 length- 導出するビット数を表す数値です。ブラウザの互換性のために、数値は
8の倍数である必要があります。
сrypto.subtle.deriveKey(algorithm,baseKey,derivedKeyAlgorithm,extractable,keyUsages)- マスターキーから秘密鍵を導出します。可能な値
algorithm- 使用する導出アルゴリズムを定義するオブジェクトです。
HKDFの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、HKDFに設定する必要があります。 -
hashは、使用するダイジェストアルゴリズムを含む文字列です:SHA-1、SHA-256、SHA-384、またはSHA-512。 -
saltは、digest関数の出力と同じ長さのランダムまたは擬似ランダムな値を表すArrayBuffer、TypedArray、またはDataViewです。deriveKey()に渡される入力キーマテリアルとは異なり、salt は秘密にしておく必要はありません。 -
infoは、導出されたキーをアプリケーションまたはコンテキストにバインドするために使用されるアプリケーション固有のコンテキスト情報を表すArrayBuffer、TypedArray、またはDataViewです。同じ入力キーマテリアルを使用しながら、異なるコンテキストに対して異なるキーを導出できます。このプロパティは必須ですが、空のバッファにすることもできます。
-
PBKDF2の場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、PBKDF2に設定する必要があります。 -
hashは、使用するダイジェストアルゴリズムを含む文字列です:SHA-1、SHA-256、SHA-384、またはSHA-512。 -
saltは、少なくとも16バイトのランダムまたは擬似ランダムな値を表すArrayBuffer、TypedArray、またはDataViewです。deriveKey()に渡される入力キーマテリアルとは異なり、salt は秘密にしておく必要はありません。 -
iterationsは、deriveKey()でハッシュ関数が実行される回数を表すnumberです。
-
baseKey- 導出アルゴリズムへの入力を表す
CryptoKeyで、導出関数の初期キーマテリアルです。例えば、PBKDF2の場合、パスワードであり、сrypto.subtle.importKey()を使用してCryptoKeyとしてインポートされる可能性があります。 derivedKeyAlgorithm- 導出されたキーが使用されるアルゴリズムを定義するオブジェクトです。
HMACの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、HMACに設定する必要があります。 -
hashは、使用するダイジェスト関数の名前を含む文字列です:SHA-1、SHA-256、SHA-384、またはSHA-512。 -
length(オプション)は、キーのビット長を表すnumberです。指定されていない場合、キーの長さは選択したハッシュ関数のブロックサイズと同じになります。
-
AES-CTR、AES-CBC、またはAES-GCMの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、使用するアルゴリズムに応じて、AES-CTR、AES-CBC、またはAES-GCMに設定する必要があります。 -
lengthは、生成するキーのビット長を表すnumberです:128、192、または256。
-
extractable- キーをエクスポートできるかどうかを示すブール値です。
keyUsages- 導出されたキーで何ができるかを示す
Arrayです。キーの使用法は、derivedKeyAlgorithmで設定されたアルゴリズムで許可されている必要があります。可能な値encrypt- メッセージを暗号化するためのキー
decrypt- メッセージを復号化するためのキー
sign- メッセージに署名するためのキー
verify- 署名を検証するためのキー
deriveKey- 新しいキーを導出するためのキー
deriveBits- ビットを導出するためのキー
wrapKey- キーをラップするためのキー
unwrapKey- キーをアンラップするためのキー
сrypto.subtle.digest(algorithm,data)- 指定されたデータのダイジェストを生成します。使用するダイジェストアルゴリズムの識別子とダイジェストするデータを引数として取ります。ダイジェストで満たされる
Promiseを返します。可能な値algorithm- 使用するハッシュ関数を定義する文字列です:
SHA-1(暗号化アプリケーションには使用しないでください)、SHA-256、SHA-384、またはSHA-512。 data- ダイジェストするデータを含む
ArrayBuffer、TypedArray、またはDataView。
сrypto.subtle.exportKey(format,key)- キーをエクスポートします:キーを
CryptoKeyオブジェクトとして受け取り、外部の移植可能な形式でキーを返します(0.7.10以降)。formatがjwkの場合、Promiseはキーを含む JSON オブジェクトで満たされます。それ以外の場合、promise はキーを含むArrayBufferで満たされます。可能な値format- キーをエクスポートするデータ形式を記述する文字列で、次のいずれかになります。
raw- 生のデータ形式
pkcs8- PKCS #8 形式
spki- SubjectPublicKeyInfo 形式
jwk- JSON Web Key (JWK) 形式 ( 0.7.10 以降)
key- エクスポートされるキーを含む
CryptoKey
сrypto.subtle.generateKey(algorithm,extractable,usage)- 対称アルゴリズムの新しいキー、または公開鍵アルゴリズムのキーペアを生成します ( 0.7.10 以降)。生成されたキーを
CryptoKeyまたはCryptoKeyPairオブジェクトとして解決するPromiseを返します。指定可能な値algorithm- 生成するキーのタイプを定義し、アルゴリズム固有の追加パラメータを提供する辞書オブジェクト
RSASSA-PKCS1-v1_5、RSA-PSS、またはRSA-OAEPの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、使用するアルゴリズムに応じて、RSASSA-PKCS1-v1_5、RSA-PSS、またはRSA-OAEPに設定する必要があります。 -
hashは、使用するdigest関数の名前を表す文字列で、SHA-256、SHA-384、またはSHA-512を指定できます。
-
ECDSAの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、ECDSAに設定する必要があります。 -
namedCurveは、使用する楕円曲線の名前を表す文字列で、P-256、P-384、またはP-521を指定できます。
-
HMACの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、HMACに設定する必要があります。 -
hashは、使用するdigest関数の名前を表す文字列で、SHA-256、SHA-384、またはSHA-512を指定できます。 -
length(オプション) は、キーのビット長を表す数値です。省略した場合、キーの長さは、選択したダイジェスト関数によって生成されるダイジェストの長さに等しくなります。
-
AES-CTR、AES-CBC、またはAES-GCMの場合、アルゴリズムを識別する文字列、または{ "name": "ALGORITHM" }形式のオブジェクトを渡します。ここで、ALGORITHMはアルゴリズムの名前です。
extractable- キーをエクスポートできるかどうかを示すブール値
使用法- キーで可能なアクションを示す
arrayencrypt- メッセージを暗号化するためのキー
decrypt- メッセージを復号化するためのキー
sign- メッセージに署名するためのキー
verify- 署名を検証するためのキー
deriveKey- 新しいキーを導出するためのキー
deriveBits- ビットを導出するためのキー
wrapKey- キーをラップするためのキー
unwrapKey- キーをアンラップするためのキー
сrypto.subtle.importKey(format,keyData,algorithm,extractable,keyUsages)- キーをインポートします。外部のポータブル形式のキーを入力として受け取り、
CryptoKeyオブジェクトを返します。インポートされたキーをCryptoKeyオブジェクトとして解決するPromiseを返します。指定可能な値format- インポートするキーのデータ形式を記述する文字列。次のいずれかになります。
raw- 生のデータ形式
pkcs8- PKCS #8 形式
spki- SubjectPublicKeyInfo 形式
jwk- JSON Web Key (JWK) 形式 ( 0.7.10 以降)
keyData- 指定された形式でキーを含む
ArrayBuffer、TypedArray、またはDataViewオブジェクト algorithm- インポートするキーのタイプを定義し、アルゴリズム固有の追加パラメータを提供する辞書オブジェクト
RSASSA-PKCS1-v1_5、RSA-PSS、またはRSA-OAEPの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、使用するアルゴリズムに応じて、RSASSA-PKCS1-v1_5、RSA-PSS、またはRSA-OAEPに設定する必要があります。 -
hashは、使用するdigest関数の名前を表す文字列で、SHA-1、SHA-256、SHA-384、またはSHA-512を指定できます。
-
ECDSAの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、ECDSAに設定する必要があります。 -
namedCurveは、使用する楕円曲線の名前を表す文字列で、P-256、P-384、またはP-521を指定できます。
-
HMACの場合は、以下のキーを持つオブジェクトを渡します。-
nameは文字列で、HMACに設定する必要があります。 -
hashは、使用するdigest関数の名前を表す文字列で、SHA-256、SHA-384、またはSHA-512を指定できます。 -
length(オプション) は、キーのビット長を表す数値です。省略した場合、キーの長さは、選択したダイジェスト関数によって生成されるダイジェストの長さに等しくなります。
-
AES-CTR、AES-CBC、またはAES-GCMの場合、アルゴリズムを識別する文字列、または{ "name": "ALGORITHM" }形式のオブジェクトを渡します。ここで、ALGORITHMはアルゴリズムの名前です。PBKDF2の場合、PBKDF2文字列を渡します。HKDFの場合、HKDF文字列を渡します。
extractable- キーをエクスポートできるかどうかを示すブール値
keyUsages- キーで可能なアクションを示す
arrayencrypt- メッセージを暗号化するためのキー
decrypt- メッセージを復号化するためのキー
sign- メッセージに署名するためのキー
verify- 署名を検証するためのキー
deriveKey- 新しいキーを導出するためのキー
deriveBits- ビットを導出するためのキー
wrapKey- キーをラップするためのキー
unwrapKey- キーをアンラップするためのキー
сrypto.subtle.sign(algorithm,key,data)- 署名を含む
ArrayBufferで解決するPromiseとしてsignatureを返します。指定可能な値algorithm- 使用する署名アルゴリズムとそのパラメータを指定する文字列またはオブジェクト
RSASSA-PKCS1-v1_5の場合、アルゴリズムを識別する文字列、または{ "name": "ALGORITHM" }形式のオブジェクトを渡します。RSA-PSSの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、RSA-PSSに設定する必要があります。 -
saltLengthは、使用するランダムソルトの長さ(バイト単位)を表す longintegerです。
-
ECDSAの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、ECDSAに設定する必要があります。 -
hashは、使用するダイジェストアルゴリズムの識別子で、SHA-256、SHA-384、またはSHA-512を指定できます。
-
HMACの場合、アルゴリズムを識別する文字列、または{ "name": "ALGORITHM" }形式のオブジェクトを渡します。
key- 署名に使用するキーである
CryptoKeyオブジェクト。アルゴリズムが公開鍵暗号システムを識別する場合、これは秘密鍵です。 data- 署名するデータを含む
ArrayBuffer、TypedArray、またはDataViewオブジェクト
сrypto.subtle.verify(algorithm,key,signature,data)- デジタル署名を検証し、署名が有効な場合は
true、それ以外の場合はfalseのブール値で解決するPromiseを返します。指定可能な値algorithm- 使用するアルゴリズムとそのパラメータを指定する文字列またはオブジェクト
RSASSA-PKCS1-v1_5の場合、アルゴリズムを識別する文字列、または{ "name": "ALGORITHM" }形式のオブジェクトを渡します。RSA-PSSの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、RSA-PSSに設定する必要があります。 -
saltLengthは、使用するランダムソルトの長さ(バイト単位)を表す longintegerです。
-
ECDSAの場合、次のキーを持つオブジェクトを渡します。-
nameは文字列で、ECDSAに設定する必要があります。 -
hashは、使用するダイジェストアルゴリズムの識別子で、SHA-256、SHA-384、またはSHA-512を指定できます。
-
HMACの場合、アルゴリズムを識別する文字列、または{ "name": "ALGORITHM" }形式のオブジェクトを渡します。
key- 検証に使用するキーである
CryptoKeyオブジェクト。対称アルゴリズムの場合は秘密鍵、公開鍵システムの場合は公開鍵です。 signature- 検証する署名を含む
ArrayBuffer、TypedArray、またはDataView data- 署名を検証するデータを含む
ArrayBuffer、TypedArray、またはDataViewオブジェクト
CryptoKey
CryptoKey.algorithm |
CryptoKey.extractable |
CryptoKey.type |
CryptoKey.usages |
CryptoKeyオブジェクトは、SubtleCryptoメソッドのいずれか、сrypto.subtle.generateKey()、сrypto.subtle.deriveKey()、сrypto.subtle.importKey()から取得した暗号化keyを表します。
CryptoKey.algorithm- このキーを使用できるアルゴリズムと、関連する追加パラメータを記述したオブジェクトを返します ( 0.8.0 以降)。読み取り専用。
CryptoKey.extractable- キーをエクスポートできる場合は
trueであるブール値 ( 0.8.0 以降)。読み取り専用。 CryptoKey.type- オブジェクトが表すキーの種類を示す文字列値。読み取り専用。指定可能な値
secret- このキーは、対称アルゴリズムで使用するための秘密鍵です。
private- このキーは、非対称アルゴリズムの
CryptoKeyPairの秘密鍵部分です。 public- このキーは、非対称アルゴリズムの
CryptoKeyPairの公開鍵部分です。
CryptoKey.usages- このキーを使用できることを示す文字列の配列 ( 0.8.0 以降)。読み取り専用。配列で指定可能な値
encrypt- メッセージを暗号化するためのキー
decrypt- メッセージを復号化するためのキー
sign- メッセージに署名するためのキー
verify- 署名を検証するためのキー
deriveKey- 新しいキーを導出するためのキー
deriveBits- ビットを導出するためのキー
CryptoKeyPair
CryptoKeyPair.privateKey |
CryptoKeyPair.publicKey |
CryptoKeyPairは、WebCrypto APIの非対称キーペアを表す辞書オブジェクトです。
njs
njs.version |
njs.version_number |
njs.dump() |
njs.memoryStats |
njs.on() |
njsオブジェクトは、現在のVMインスタンスを表すグローバルオブジェクトです ( 0.2.0 以降)。
njs.version- njsの現在のバージョン(例:「0.7.4」)を含む文字列を返します。
njs.version_number- njsの現在のバージョンを数値で返します。たとえば、「0.7.4」は
0x000704として返されます ( 0.7.4 以降)。 njs.dump(value)- 値の整形された文字列表現を返します。
njs.memoryStats- 現在のVMインスタンスのメモリ統計を含むオブジェクト ( 0.7.8 以降)。
size- オペレーティングシステムから要求したnjsメモリプールのメモリ量(バイト単位)。
njs.on(event,callback)- 指定されたVMイベントのコールバックを登録します ( 0.5.2 以降)。イベントは、次のいずれかの文字列です。
exit- VMが破棄される前に呼び出されます。コールバックは引数なしで呼び出されます。
process
process.argv |
process.env |
process.kill() |
process.pid |
process.ppid |
processオブジェクトは、現在のプロセスに関する情報を提供するグローバルオブジェクトです ( 0.3.3)。
process.argv- 現在のプロセスが起動されたときに渡されたコマンドライン引数を含む配列を返します。
process.env- ユーザー環境を含むオブジェクトを返します。
デフォルトでは、nginxはTZ変数を除く親プロセスから継承されたすべての環境変数を削除します。継承された変数の一部を保持するには、envディレクティブを使用してください。
process.kill(pid,number|string)pidで識別されるプロセスにシグナルを送信します。シグナル名は、'SIGINT'や'SIGHUP'などの数値または文字列です。詳細については、kill(2)を参照してください。process.pid- 現在のプロセスのPIDを返します。
process.ppid- 現在の親プロセスのPIDを返します。
String
デフォルトでは、njsのすべての文字列はUnicode文字列です。これらは、Unicode文字を含むECMAScript文字列に対応します。0.8.0より前は、バイト文字列もサポートされていました。
バイト文字列
0.8.0以降、バイト文字列とバイト文字列メソッドのサポートは削除されました。バイトシーケンスを扱う場合は、Bufferオブジェクトと、r.requestBuffer、r.rawVariablesなどのBufferプロパティを使用する必要があります。
バイト文字列にはバイトのシーケンスが含まれており、Unicode文字列を外部データにシリアル化し、外部ソースからデシリアル化するために使用されます。たとえば、toUTF8()メソッドは、Unicode文字列をUTF-8エンコーディングを使用してバイト文字列にシリアル化します。
>> '£'.toUTF8().toString('hex')
'c2a3' /* C2 A3 is the UTF-8 representation of 00A3 ('£') code point */
toBytes()メソッドは、コードポイントが255までのUnicode文字列をバイト文字列にシリアル化します。それ以外の場合は、nullが返されます。
>> '£'.toBytes().toString('hex')
'a3' /* a3 is a byte equal to 00A3 ('£') code point */
String.bytesFrom(array|string,encoding)- このメソッドは0.4.4で廃止され、0.8.0で削除されました。代わりに
Buffer.fromメソッドを使用する必要があります。
0.4.4より前は、オクテットを含む配列、またはエンコードされた文字列(0.2.3)からバイト文字列を作成しました。エンコーディングは、>> Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]).toString() 'buffer' >> Buffer.from('YnVmZmVy', 'base64').toString() 'buffer'hex、base64、およびbase64urlを指定できました。 String.prototype.fromBytes(start[,end])- このプロパティは0.7.7で廃止され、0.8.0で削除されました。0.7.7より前は、バイト文字列から新しいUnicode文字列を返しました。各バイトは、対応するUnicodeコードポイントに置き換えられました。
String.prototype.fromUTF8(start[,end])- このプロパティは0.7.7で廃止され、0.8.0で削除されました。代わりに、
TextDecoderメソッドを使用する必要があります。0.7.7より前は、有効なUTF-8文字列を含むバイト文字列をUnicode文字列に変換しました。それ以外の場合は、nullが返されました。 String.prototype.toBytes(start[,end])- このプロパティは0.7.7で廃止され、0.8.0で削除されました。0.7.7より前は、Unicode文字列をバイト文字列にシリアル化しました。文字列に255より大きい文字が見つかった場合は、
nullを返しました。 String.prototype.toString(encoding)-
このプロパティは0.7.7で廃止され、0.8.0で削除されました。0.7.7より前は、文字列を
hex、base64、またはbase64urlにエンコードしました。>> 'αβγδ'.toString('base64url') 'zrHOss6zzrQ'バージョン0.4.3より前は、バイト文字列のみをエンコードできました。
>> 'αβγδ'.toUTF8().toString('base64url') 'zrHOss6zzrQ' String.prototype.toUTF8(start[,end])- このプロパティは0.7.7で廃止され、0.8.0で削除されました。代わりに、
TextEncoderメソッドを使用する必要があります。0.7.7より前は、Unicode文字列をUTF-8エンコーディングを使用してバイト文字列にシリアル化しました。>> 'αβγδ'.toUTF8().length 8 >> 'αβγδ'.length 4
Web API
テキストデコーダー
TextDecoder() |
TextDecoder.prototype.encoding |
TextDecoder.prototype.fatal |
TextDecoder.prototype.ignoreBOM |
TextDecoder.prototype.decode() |
TextDecoderは、バイトストリームからコードポイントのストリームを生成します ( 0.4.3)。
TextDecoder([[encoding],options])- 指定された
encodingに対して新しいTextDecoderオブジェクトを作成します。現在、UTF-8のみがサポートされています。optionsは、次のプロパティを持つTextDecoderOptions辞書です。fatal- コーディングエラーが見つかった場合に、
TextDecoder.decode()がTypeError例外をスローする必要があるかどうかを示すブールフラグ。デフォルトはfalseです。
TextDecoder.prototype.encodingTextDecoder()で使用されるエンコーディングの名前を含む文字列を返します。読み取り専用。TextDecoder.prototype.fatal- エラーモードが致命的である場合は
trueとなるブール値フラグ(読み取り専用)。 TextDecoder.prototype.ignoreBOM- バイトオーダーマークが無視される場合は
trueとなるブール値フラグ(読み取り専用)。 TextDecoder.prototype.decode(buffer, [options])TextDecoder()によってbufferからデコードされたテキストを含む文字列を返します。bufferはArrayBufferを指定できます。optionsは、次のプロパティを持つTextDecodeOptionsディクショナリです。stream- 後続の
decode()呼び出しで追加データが続くかどうかを示すブール値フラグ。データをチャンクで処理する場合はtrue、最後のチャンクの場合やデータがチャンク化されていない場合はfalseです。デフォルトはfalseです。
>> (new TextDecoder()).decode(new Uint8Array([206,177,206,178])) αβ
テキストエンコーダー
TextEncoder() |
TextEncoder.prototype.encode() |
TextEncoder.prototype.encodeInto() |
TextEncoderオブジェクトは、コードポイントのストリームからUTF-8エンコーディングによるバイトストリームを生成します(0.4.3)。
TextEncoder()- UTF-8エンコーディングによるバイトストリームを生成する新しく構築された
TextEncoderを返します。 TextEncoder.prototype.encode(string)stringをUTF-8エンコードされたテキストを持つUint8Arrayにエンコードします。TextEncoder.prototype.encodeInto(string,uint8Array)stringをUTF-8にエンコードし、その結果を宛先のUint8Arrayに格納して、エンコーディングの進捗状況を示すディクショナリオブジェクトを返します。ディクショナリオブジェクトには2つのメンバが含まれます。read- ソース
stringからUTF-8に変換されたコードのUTF-16ユニット数。 written- 宛先
Uint8Arrayで変更されたバイト数。
タイマー
clearTimeout() |
setTimeout() |
clearTimeout(timeout)setTimeout()によって作成されたtimeoutオブジェクトをキャンセルします。setTimeout(function,milliseconds[,argument1,argumentN])- 指定された
milliseconds数後にfunctionを呼び出します。1つ以上のオプションのargumentsを、指定された関数に渡すことができます。timeoutオブジェクトを返します。function handler(v) { // ... } t = setTimeout(handler, 12); // ... clearTimeout(t);
グローバル関数
atob() |
btoa() |
atob(encodedData)Base64エンコーディングを使用してエンコードされたデータの文字列をデコードします。encodedDataパラメーターは、Base64エンコードされたデータを含むバイナリ文字列です。encodedDataからデコードされたデータを含む文字列を返します。同様の
btoa()メソッドを使用して、通信上の問題を引き起こす可能性のあるデータをエンコードして送信し、atob()メソッドを使用してデータを再びデコードできます。たとえば、ASCII値0から31までの制御文字をエンコード、送信、およびデコードできます。const encodedData = btoa("text to encode"); // encode a string const decodedData = atob(encodedData); // decode the stringbtoa(stringToEncode)- バイナリ文字列からBase64エンコードされたASCII文字列を作成します。
stringToEncodeパラメーターはエンコードするバイナリ文字列です。stringToEncodeのBase64表現を含むASCII文字列を返します。このメソッドを使用して、通信上の問題を引き起こす可能性のあるデータをエンコードし、送信し、
atob()メソッドを使用してデータを再びデコードできます。たとえば、ASCII値0から31までの制御文字をエンコードできます。const encodedData = btoa("text to encode"); // encode a string const decodedData = atob(encodedData); // decode the string
組み込みモジュール
Buffer
Buffer.alloc(size[,fill[,encoding]])-
指定された
sizeの新しいBufferを割り当てます。fillが指定されていない場合、Bufferはゼロで埋められます。fillが指定されている場合、割り当てられたBufferはbuf.fill(fill)を呼び出すことによって初期化されます。fillとencodingが指定されている場合、割り当てられたBufferはbuf.fill(fill, encoding)を呼び出すことによって初期化されます。fillパラメーターは、string、Buffer、Uint8Array、またはintegerを指定できます。 Buffer.allocUnsafe(size)-
バッファに割り当てられたメモリが初期化されない点が異なることを除いて、
Buffer.alloc()と同じです。新しいバッファの内容は不明であり、機密データが含まれている可能性があります。 Buffer.byteLength(value[,encoding])encodingを使用してエンコードされた場合の、指定された値のバイト長を返します。値には、string、Buffer、TypedArray、DataView、またはArrayBufferを指定できます。値がstringの場合、encodingパラメーターはそのエンコーディングであり、utf8、hex、base64、base64urlを指定できます。デフォルトはutf8です。Buffer.compare(buffer1,buffer2)- Bufferインスタンスの配列をソートするときに、
buffer1をbuffer2と比較します。buffer1がbuffer2と同じ場合は0、ソート時にbuffer2がbuffer1の前に来る必要がある場合は1、ソート時にbuffer2がbuffer1の後に来る必要がある場合は-1を返します。 Buffer.concat(list[,totalLength])- リスト内のすべてのBufferインスタンスを連結した結果である新しいBufferを返します。リストに項目がない場合、または合計長が0の場合、新しい長さ0のBufferが返されます。
totalLengthが指定されていない場合、リスト内のBufferインスタンスの長さを加算することで計算されます。totalLengthが指定されている場合は、符号なし整数に強制変換されます。リスト内のバッファの合計長がtotalLengthを超える場合、結果はtotalLengthに切り捨てられます。 Buffer.from(array)0〜255の範囲のバイト配列を使用して新しいBufferを割り当てます。範囲外の配列エントリは切り捨てられます。Buffer.from(arrayBuffer,byteOffset[,length]])- 基になるメモリをコピーせずに、
ArrayBufferのビューを作成します。オプションのbyteOffsetとlength引数は、Bufferによって共有されるarrayBuffer内のメモリ範囲を指定します。 Buffer.from(buffer)- 渡されたバッファデータを新しいBufferインスタンスにコピーします。
Buffer.from(object[,offsetOrEncoding[,length]])valueOf()関数がオブジェクトと厳密に等しくない値を返すオブジェクトの場合、Buffer.from(object.valueOf(),offsetOrEncoding,length)を返します。Buffer.from(string[,encoding])stringを使用して新しいBufferを作成します。encodingパラメーターは、文字列をバイトに変換するときに使用する文字エンコーディングを識別します。エンコーディングには、utf8、hex、base64、base64urlを指定できます。デフォルトはutf8です。Buffer.isBuffer(object)- ブール値で、
objectがBufferの場合はtrueを返します。 Buffer.isEncoding(encoding)- ブール値で、エンコーディングがサポートされている文字エンコーディングの名前である場合は
trueを返します。 buffer[index]buffer内の位置indexにあるオクテットを取得および設定するために使用できるインデックス演算子。値は個々のバイトを参照するため、有効な値の範囲は0〜255(10進数)です。buf.buffer- このBufferオブジェクトが作成される基になる
ArrayBufferオブジェクト。 buf.byteOffset- Bufferの基になる
ArrayBufferオブジェクトのbyteOffsetを指定する整数。 buf.compare(target[,targetStart[,targetEnd[,sourceStart[,sourceEnd]]]])- bufferを
targetと比較し、ソート順でbufferがtargetの前、後、または同じであるかを示す数値を返します。比較は、各Buffer内の実際のバイトシーケンスに基づいています。targetStartは、比較を開始するtarget内のオフセットを指定する整数で、デフォルトは0です。targetEndは、比較を終了するtarget内のオフセットを指定する整数で、デフォルトはtarget.lengthです。sourceStartは、比較を開始するbuffer内のオフセットを指定する整数で、デフォルトは0です。sourceEndは、比較を終了するbuffer内のオフセットを指定する整数(排他的)で、デフォルトはbuf.lengthです。 buf.copy(target[,targetStart[,sourceStart[,sourceEnd]]])- ターゲットメモリ領域がbufferと重複する場合でも、bufferの領域から
targetの領域にデータをコピーします。targetパラメーターは、コピー先のBufferまたはUint8Arrayです。targetStartは、書き込みを開始するtarget内のオフセットを指定する整数で、デフォルトは0です。sourceStartは、コピーを開始するbuffer内のオフセットを指定する整数で、デフォルトは0です。sourceEndは、コピーを停止するbuffer内のオフセットを指定する整数(排他的)で、デフォルトはbuf.lengthです。 buf.equals(otherBuffer)- ブール値で、Bufferと
otherBufferの両方がまったく同じバイトを持っている場合はtrueを返します。 buf.fill(value[,offset[,end]][,encoding])- 指定された
valueでBufferを埋めます。offsetとendが指定されていない場合、Buffer全体が埋められます。valueがstring、Buffer、またはintegerではない場合、uint32に強制変換されます。結果の整数が255より大きい場合、Bufferはvalueと255で埋められます。 buf.includes(value[,byteOffset][,encoding])buf.indexOf()!== -1と同等で、valueがBufferで見つかった場合はtrueを返します。buf.indexOf(value[,byteOffset][,encoding])- Buffer内の
valueが最初に出現するインデックスを整数で返します。Bufferに値が含まれていない場合は-1を返します。valueには、指定されたencoding(デフォルトはutf8)を持つstring、Buffer、Unit8Array、または0から255の数値を使用できます。 buf.lastIndexOf(value[,byteOffset][,encoding])buf.indexOf()と同じですが、最初に出現するvalueではなく、最後に出現するvalueが検索されます。valueには、文字列、Buffer、または1から255の整数を使用できます。valueが空の文字列または空のBufferの場合、byteOffsetが返されます。buf.length- Buffer内のバイト数を返します。
buf.readIntBE(offset,byteLength)- 指定された
offsetからbufからbyteLengthを読み取り、結果をビッグエンディアンの2の補数付き符号付き値として解釈します。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。同様のメソッドもサポートされています:
buf.readInt8([offset])、buf.readInt16BE([offset])、buf.readInt32BE([offset])。 buf.readIntLE(offset,byteLength)- 指定された
offsetからbufからbyteLengthを読み取り、結果をリトルエンディアンの2の補数付き符号付き値として解釈します。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。同様のメソッドもサポートされています:
buf.readInt8([offset])、buf.readInt16LE([offset])、buf.readInt32LE([offset])。 buf.readUIntBE(offset,byteLength)- 指定された
offsetからbufからbyteLengthを読み取り、結果をビッグエンディアンの整数として解釈します。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。同様のメソッドもサポートされています:
buf.readUInt8([offset])、buf.readUInt16BE([offset])、buf.readUInt32BE([offset])。 buf.readUIntLE(offset,byteLength)- 指定された
offsetからbufからbyteLengthを読み取り、結果をリトルエンディアンの整数として解釈します。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。同様のメソッドもサポートされています:
buf.readUInt8([offset])、buf.readUInt16LE([offset])、buf.readUInt32LE([offset])。 buf.readDoubleBE([offset])- 指定された
offsetからbufから64ビットのビッグエンディアンのdouble値を読み取ります。 buf.readDoubleLE([offset])- 指定された
offsetからbufから64ビットのリトルエンディアンのdouble値を読み取ります。 buf.readFloatBE([offset])- 指定された
offsetからbufから32ビットのビッグエンディアンのfloat値を読み取ります。 buf.readFloatLE([offset])- 指定された
offsetからbufから32ビットのリトルエンディアンのfloat値を読み取ります。 buf.subarray([start[,end]])- 元のBufferと同じメモリを参照し、
startとendでオフセットおよび切り取られた新しいbufを返します。endがbuf.lengthより大きい場合、buf.lengthに等しいendの場合と同じ結果が返されます。 buf.slice([start[,end]])- 元のBufferと同じメモリを参照し、
startとendの値でオフセットおよび切り取られた新しいbufを返します。このメソッドは、BufferのスーパークラスであるUint8Array.prototype.slice()と互換性がありません。スライスをコピーするには、Uint8Array.prototype.slice()を使用してください。 buf.swap16()bufを符号なし16ビット数値の配列として解釈し、バイトオーダーをインプレースで入れ替えます。buf.lengthが2の倍数でない場合はエラーをスローします。buf.swap32()bufを符号なし32ビット数値の配列として解釈し、バイトオーダーをインプレースで入れ替えます。buf.lengthが4の倍数でない場合はエラーをスローします。buf.swap64()bufを64ビット数値の配列として解釈し、バイトオーダーをインプレースで入れ替えます。buf.lengthが8の倍数でない場合はエラーをスローします。buf.toJSON()bufのJSON表現を返します。JSON.stringify()は、Bufferインスタンスを文字列化する際にこの関数を暗黙的に呼び出します。buf.toString([encoding[,start[,end]]])- 指定された文字
encodingに従ってbufを文字列にデコードします。encodingには、utf8、hex、base64、base64urlを使用できます。startおよびendパラメータを渡して、Bufferのサブセットのみをデコードできます。 buf.write(string[,offset[,length]][,encoding])- 文字
encodingに従って、stringをoffsetのbufに書き込みます。lengthパラメータは、書き込むバイト数です。Bufferに文字列全体を格納するのに十分なスペースがない場合、文字列の一部のみが書き込まれますが、部分的にエンコードされた文字は書き込まれません。encodingには、utf8、hex、base64、base64urlを使用できます。 buf.writeIntBE(value,offset,byteLength)- 指定された
offsetのbufにvalueのbyteLengthバイトをビッグエンディアンとして書き込みます。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。次の同様のメソッドもサポートされています:
buf.writeInt8、buf.writeInt16BE、buf.writeInt32BE。 buf.writeIntLE(value,offset,byteLength)- 指定された
offsetのbufにvalueのbyteLengthバイトをリトルエンディアンとして書き込みます。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。次の同様のメソッドもサポートされています:
buf.writeInt8、buf.writeInt16LE、buf.writeInt32LE。 buf.writeUIntBE(value,offset,byteLength)- 指定された
offsetのbufにvalueのbyteLengthバイトをビッグエンディアンとして書き込みます。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。次の同様のメソッドもサポートされています:
buf.writeUInt8、buf.writeUInt16BE、buf.writeUInt32BE。 buf.writeUIntLE(value,offset,byteLength)- 指定された
offsetのbufにvalueのbyteLengthバイトをリトルエンディアンとして書き込みます。最大48ビットの精度をサポートします。byteLengthパラメータは、読み取るバイト数を指定する1から6の整数です。次の同様のメソッドもサポートされています:
buf.writeUInt8、buf.writeUInt16LE、buf.writeUInt32LE。 buf.writeDoubleBE(value, [offset])- 指定された
offsetのbufにvalueをビッグエンディアンとして書き込みます。 buf.writeDoubleLE(value, [offset])- 指定された
offsetのbufにvalueをリトルエンディアンとして書き込みます。 buf.writeFloatBE(value, [offset])- 指定された
offsetのbufにvalueをビッグエンディアンとして書き込みます。 buf.writeFloatLE(value, [offset])- 指定された
offsetのbufにvalueをリトルエンディアンとして書き込みます。
Crypto
crypto.createHash() |
crypto.createHmac() |
0.7.0以降、拡張されたcrypto APIはグローバルなcryptoオブジェクトとして利用できます。
Cryptoモジュールは暗号化機能のサポートを提供します。Cryptoモジュールオブジェクトはrequire('crypto')によって返されます。
crypto.createHash(algorithm)- 指定された
algorithmを使用してハッシュダイジェストを生成するために使用できるHashオブジェクトを作成して返します。アルゴリズムには、md5、sha1、およびsha256を使用できます。 crypto.createHmac(algorithm,secret key)- 指定された
algorithmとsecret keyを使用するHMACオブジェクトを作成して返します。アルゴリズムには、md5、sha1、およびsha256を使用できます。
Hash
hash.update() |
hash.digest() |
hash.update(data)- 指定された
dataでハッシュコンテンツを更新します。 hash.digest([encoding])hash.update()を使用して渡されたすべてのデータのダイジェストを計算します。エンコードには、hex、base64、およびbase64urlを使用できます。エンコードが指定されていない場合は、Bufferオブジェクト(0.4.4)が返されます。バージョン(0.4.4)より前は、Bufferオブジェクトの代わりにバイト文字列が返されました。
hash.copy()- ハッシュの現在の状態のコピーを作成します(0.7.12以降)。
>> var cr = require('crypto')
undefined
>> cr.createHash('sha1').update('A').update('B').digest('base64url')
'BtlFlCqiamG-GMPiK_GbvKjdK10'
HMAC
hmac.update() |
hmac.digest() |
hmac.update(data)- 指定された
dataでHMACコンテンツを更新します。 hmac.digest([encoding])hmac.update()を使用して渡されたすべてのデータのHMACダイジェストを計算します。エンコードには、hex、base64、およびbase64urlを使用できます。エンコードが指定されていない場合は、Bufferオブジェクト(0.4.4)が返されます。バージョン0.4.4より前は、Bufferオブジェクトの代わりにバイト文字列が返されました。
>> var cr = require('crypto')
undefined
>> cr.createHmac('sha1', 'secret.key').update('AB').digest('base64url')
'Oglm93xn23_MkiaEq_e9u8zk374'
ファイルシステム
fs.Dirent |
fs.FileHandle |
fs.Stats |
ファイルアクセス定数 |
ファイルシステムフラグ |
ファイルシステムモジュールは、ファイル操作を提供します。
モジュールオブジェクトはrequire('fs')によって返されます。0.3.9以降、ファイルシステムメソッドのプロミス化されたバージョンは、require('fs').promisesオブジェクトを通じて利用できます。
> var fs = require('fs').promises;
undefined
> fs.readFile("/file/path").then((data)=>console.log(data))
<file data>
accessSync(path[,mode])pathで指定されたファイルまたはディレクトリのアクセス許可を同期的にテストします(0.3.9)。チェックが失敗するとエラーが返され、それ以外の場合は、メソッドはundefinedを返します。mode- 実行するアクセシビリティチェックを指定するオプションの整数で、デフォルトは
fs.constants.F_OKです。try { fs.accessSync('/file/path', fs.constants.R_OK | fs.constants.W_OK); console.log('has access'); } catch (e) { console.log('no access');) }
appendFileSync(filename,data[,options])- 指定された
dataを、指定されたfilenameを持つファイルに同期的に追加します。dataは、文字列またはBufferオブジェクトであると想定されます(0.4.4)。ファイルが存在しない場合は、作成されます。optionsパラメータは、次のキーを持つオブジェクトであると想定されますmode- modeオプション。デフォルトは
0o666です flag- ファイルシステムフラグ。デフォルトは
aです
closeSync(fd)- メソッドで使用される整数で表される
fdファイル記述子を閉じます。undefinedを返します。 existsSync(path)- ブール値。指定された
pathが存在する場合はtrueを返します。(0.8.2) fstatSync(fd)- ファイル記述子に対する
fs.Statsオブジェクトを取得します (0.7.7)。fdパラメータは、メソッドで使用されるファイル記述子を表す整数です。 lstatSync(path[,options])pathで参照されるシンボリックリンクのfs.Statsオブジェクトを同期的に取得します (0.7.1)。optionsパラメータは、次のキーを持つオブジェクトである必要があります。throwIfNoEntry- ファイルシステムエントリが存在しない場合に、
undefinedを返すのではなく例外をスローするかどうかを示すブール値。デフォルトはfalseです。
mkdirSync(path[,options])- 指定された
pathにディレクトリを同期的に作成します(0.4.2)。optionsパラメータは、modeを指定するintegerか、次のキーを持つオブジェクトである必要があります。mode- modeオプション。デフォルトは
0o777です。
openSync(path[,flags[,mode]])- 開かれたファイル
pathのファイル記述子を表す整数を返します (0.7.7)。flags- ファイルシステムのフラグ。デフォルトは
rです。 mode- modeオプション。デフォルトは
0o666です
promises.open(path[,flags[,mode]])- 開かれたファイル
pathを表すFileHandleオブジェクトを返します (0.7.7)。flags- ファイルシステムのフラグ。デフォルトは
rです。 mode- modeオプション。デフォルトは
0o666です
readdirSync(path[,options])- 指定された
pathにあるディレクトリの内容を同期的に読み取ります (0.4.2)。optionsパラメータは、エンコーディングを指定する文字列、または次のキーを持つオブジェクトである必要があります。 readFileSync(filename[,options])- 提供された
filenameを持つファイルの内容を同期的に返します。optionsパラメータは、エンコーディングを指定するstringを保持します。エンコーディングが指定されている場合、文字列が返されます。それ以外の場合は、Bufferオブジェクト(0.4.4)が返されます。バージョン0.4.4より前は、エンコーディングが指定されていない場合は、バイト文字列が返されていました。
それ以外の場合、optionsは、次のキーを持つオブジェクトである必要があります。encoding- エンコーディング。デフォルトでは指定されていません。エンコーディングは、
utf8、hex(0.4.4)、base64(0.4.4)、base64url(0.4.4)にすることができます。 flag- ファイルシステムのフラグ。デフォルトは
rです。
>> var fs = require('fs') undefined >> var file = fs.readFileSync('/file/path.tar.gz') undefined >> var gzipped = file.slice(0,2).toString('hex') === '1f8b'; gzipped true readlinkSync(path[,options])- readlink(2)を使用して、シンボリックリンク
pathの内容を同期的に取得します (0.8.7)。options引数は、エンコーディングを指定する文字列、または使用する文字エンコーディングを指定するencodingプロパティを持つオブジェクトにすることができます。encodingがbufferの場合、結果はBufferオブジェクトとして返され、それ以外の場合は文字列として返されます。 readSync(fd,buffer,offset[,length[,position]])- ファイル記述子
fdを使用してファイルパスの内容を読み取り、読み取られたバイト数を返します (0.7.7)。bufferbufferの値は、Buffer、TypedArray、またはDataViewにすることができます。offset- データの書き込み先のバッファ内の位置を表す
integerです。 length- 読み取るバイト数を表す
integerです。 position- ファイル内の読み取りを開始する場所を指定します。値は
integerまたはnullにできます。デフォルトはnullです。positionがnullの場合、データは現在のファイル位置から読み取られ、ファイル位置が更新されます。positionがintegerの場合、ファイル位置は変更されません。
realpathSync(path[,options])- realpath(3)を使用して、
.、..、およびシンボリックリンクを解決することにより、正規のパス名を同期的に計算します。options引数は、エンコーディングを指定する文字列、またはコールバックに渡されるパスに使用する文字エンコーディングを指定するエンコーディングプロパティを持つオブジェクトにすることができます(0.3.9)。 renameSync(oldPath,newPath)- ファイルの名前または場所を
oldPathからnewPathに同期的に変更します (0.3.4)。>> var fs = require('fs') undefined >> var file = fs.renameSync('hello.txt', 'HelloWorld.txt') undefined rmdirSync(path)- 指定された
pathにあるディレクトリを同期的に削除します(0.4.2)。 statSync(path,[options])- 指定された
pathのfs.Statsオブジェクトを同期的に取得します(0.7.1)。pathは、stringまたはbufferにすることができます。optionsパラメータは、次のキーを持つオブジェクトである必要があります。throwIfNoEntry- ファイルシステムエントリが存在しない場合に、
undefinedを返すのではなく例外をスローするかどうかを示すブール値。デフォルトはtrueです。
symlinkSync(target,path)- symlink(2)を使用して、
targetを指すpathという名前のリンクを同期的に作成します(0.3.9)。相対ターゲットは、リンクの親ディレクトリに対して相対的です。 unlinkSync(path)pathによるファイルのリンクを同期的に解除します(0.3.9)。writeFileSync(filename,data[,options])- 提供された
filenameを持つファイルにdataを同期的に書き込みます。dataは、文字列またはBufferオブジェクトである必要があります(0.4.4)。ファイルが存在しない場合は作成され、ファイルが存在する場合は置き換えられます。optionsパラメータは、次のキーを持つオブジェクトである必要があります。mode- modeオプション。デフォルトは
0o666です flag- ファイルシステムのフラグ。デフォルトは
wです。
>> var fs = require('fs') undefined >> var file = fs.writeFileSync('hello.txt', 'Hello world') undefined writeSync(fd,buffer,offset[,length[,position]])- ファイル記述子を使用してバッファをファイルに書き込み、書き込まれたバイトの
numberを返します (0.7.7)。fd- ファイル記述子を表す
integer。 bufferbufferの値は、Buffer、TypedArray、またはDataViewにすることができます。offset- 書き込むバッファの一部を決定する
integer。デフォルトは0です。 length- 書き込むバイト数を指定する
integer。デフォルトは、Buffer.byteLengthのオフセットです。 position- このデータの書き込み先のファイルの先頭からのオフセットを参照します。
integerまたはnullにすることができます。デフォルトはnullです。pwrite(2)も参照してください。
writeSync(fd,string[,position[,encoding]])- ファイル記述子
fdを使用してstringをファイルに書き込み、書き込まれたバイトのnumberを返します (0.7.7)。fd- ファイル記述子を表す
integer。 position- このデータの書き込み先のファイルの先頭からのオフセットを参照します。
integerまたはnullにすることができます。デフォルトはnullです。pwrite(2)も参照してください。 encodingstringです。デフォルトはutf8です。
fs.Dirent
fs.Direntは、ディレクトリのエントリ(ファイルまたはサブディレクトリ)の表現です。readdirSync()がwithFileTypesオプションとともに呼び出されると、結果の配列にfs.Direntオブジェクトが含まれます。
-
dirent.isBlockDevice()—fs.Direntオブジェクトがブロックデバイスを表している場合はtrueを返します。 -
dirent.isCharacterDevice()—fs.Direntオブジェクトが文字デバイスを表している場合はtrueを返します。 -
dirent.isDirectory()—fs.Direntオブジェクトがファイルシステムのディレクトリを表している場合はtrueを返します。 -
dirent.isFIFO()—fs.Direntオブジェクトが先入れ先出し (FIFO) パイプを表している場合はtrueを返します。 -
dirent.isFile()—fs.Direntオブジェクトが通常ファイルを表している場合はtrueを返します。 -
dirent.isSocket()—fs.Direntオブジェクトがソケットを表している場合はtrueを返します。 -
dirent.isSymbolicLink()—fs.Direntオブジェクトがシンボリックリンクを表している場合はtrueを返します。 -
dirent.name—fs.Direntオブジェクトが参照するファイルの名前です。
fs.FileHandle
filehandle.close() |
filehandle.fd |
filehandle.read() |
filehandle.stat() |
filehandle.write( |
filehandle.write( |
FileHandleオブジェクトは、数値ファイル記述子のオブジェクトラッパーです(0.7.7)。FileHandleオブジェクトのインスタンスは、fs.promises.open()メソッドによって作成されます。filehandle.close()メソッドを使用してFileHandleが閉じられない場合、メモリリークを防ぐために、ファイル記述子を自動的に閉じようとします。この動作は信頼できない可能性があるため、頼らないでください。代わりに、常に明示的にFileHandleを閉じてください。
filehandle.close()- ハンドルに対する保留中の操作が完了するのを待ってから、ファイルハンドルを閉じます。成功するとundefinedで完了する
promiseを返します。 filehandle.fdFileHandleオブジェクトによって管理される数値ファイル記述子。filehandle.read(buffer,offset[,length[,position]])- ファイルからデータを読み取り、指定されたバッファに格納します。
buffer- 読み取られたファイルデータで埋められるバッファ。値は、
Buffer、TypedArray、またはDataViewにすることができます。 offset- バッファへの書き込みを開始する位置を表す
integerです。 length- 読み取るバイト数を表す
integerです。 position- ファイルからのデータ読み取りを開始する場所。値は、
integer、nullにすることができます。nullの場合、データは現在のファイル位置から読み取られ、位置が更新されます。positionがintegerの場合、現在のファイル位置は変更されません。
Promiseを返します。bytesRead- 読み取られたバイト数を表す
integerです。 buffer- バッファに渡された引数への参照です。
Buffer、TypedArray、またはDataViewにすることができます。
filehandle.stat()- ファイルのfs.Statsで完了します。
promiseを返します。 filehandle.write(buffer,offset[,length[,position]])- ファイルにバッファを書き込みます。
bufferbufferの値は、Buffer、TypedArray、またはDataViewにすることができます。offsetbuffer内のどの位置から書き込みを開始するかを示す整数値です。lengthbufferから書き込むバイト数を示す整数値です。デフォルトでは、Buffer.byteLength のオフセットになります。positionbufferからのデータを書き込むファイル先頭からのオフセットです。integerまたはnullを指定できます。デフォルトはnullです。positionがnumberでない場合、データは現在の位置に書き込まれます。詳細は POSIX の pwrite(2) ドキュメントを参照してください。
Promiseを返します。bytesWritten- 書き込まれたバイト数を示す
integer値です。 buffer- 書き込まれたバッファへの参照です。
Buffer、TypedArray、またはDataViewを指定できます。
Promise が解決または拒否されるのを待たずに、同じファイルに対して
filehandle.write()を複数回使用することは安全ではありません。 filehandle.write(string[,position[,encoding]])- ファイルに
stringを書き込みます。positionbufferからのデータを書き込むファイル先頭からのオフセットです。integerまたはnullを指定できます。デフォルトはnullです。positionがnumberでない場合、データは現在の位置に書き込まれます。詳細は POSIX の pwrite(2) ドキュメントを参照してください。encoding- 文字列のエンコーディングを指定します。デフォルトは
utf8です。
Promiseを返します。bytesWritten- 書き込まれたバイト数を示す
integer値です。 buffer- 書き込まれたバッファへの参照です。
Buffer、TypedArray、またはDataViewを指定できます。
Promise が解決または拒否されるのを待たずに、同じファイルに対して
filehandle.write()を複数回使用することは安全ではありません。
fs.Stats
fs.Stats オブジェクトは、ファイルに関する情報を提供します。このオブジェクトは、fs.statSync() と fs.lstatSync() から返されます。
-
stats.isBlockDevice()—fs.Statsオブジェクトがブロックデバイスを表す場合にtrueを返します。 -
stats.isDirectory()—fs.Statsオブジェクトがファイルシステムディレクトリを表す場合にtrueを返します。 -
stats.isFIFO()—fs.Statsオブジェクトが先入れ先出し (FIFO) パイプを表す場合にtrueを返します。 -
stats.isFile()—fs.Statsオブジェクトが通常ファイルを表す場合にtrueを返します。 -
stats.isSocket()—fs.Statsオブジェクトがソケットを表す場合にtrueを返します。 -
stats.isSymbolicLink()—fs.Statsオブジェクトがシンボリックリンクを表す場合にtrueを返します。 -
stats.dev— ファイルが含まれるデバイスの数値識別子です。 -
stats.ino— ファイルのファイルシステム固有のInode番号です。 -
stats.mode— ファイルの種類とモードを記述するビットフィールドです。 -
stats.nlink— ファイルに存在するハードリンクの数です。 -
stats.uid— ファイルを所有するユーザーの数値ユーザー識別子 (POSIX) です。 -
stats.gid— ファイルを所有するグループの数値グループ識別子 (POSIX) です。 -
stats.rdev— ファイルがデバイスを表す場合の数値デバイス識別子です。 -
stats.size— ファイルのサイズ (バイト単位) です。 -
stats.blksize— I/O 操作のファイルシステムブロックサイズです。 -
stats.blocks— このファイルに割り当てられたブロックの数です。 -
stats.atimeMs— このファイルが最後にアクセスされた時刻を示すタイムスタンプです。POSIX エポックからのミリ秒数で表されます。 -
stats.mtimeMs— このファイルが最後に変更された時刻を示すタイムスタンプです。POSIX エポックからのミリ秒数で表されます。 -
stats.ctimeMs— このファイルが最後に変更された時刻を示すタイムスタンプです。POSIX エポックからのミリ秒数で表されます。 -
stats.birthtimeMs— このファイルの作成時刻を示すタイムスタンプです。POSIX エポックからのミリ秒数で表されます。 -
stats.atime— このファイルが最後にアクセスされた時刻を示すタイムスタンプです。 -
stats.mtime— このファイルが最後に変更された時刻を示すタイムスタンプです。 -
stats.ctime— このファイルが最後に変更された時刻を示すタイムスタンプです。 -
stats.birthtime— このファイルの作成時刻を示すタイムスタンプです。
ファイルアクセス定数
access() メソッドは、次のフラグを受け入れることができます。これらのフラグは fs.constants によってエクスポートされます。
-
F_OK— ファイルが呼び出しプロセスから見えることを示します。モードが指定されていない場合、デフォルトで使用されます -
R_OK— ファイルが呼び出しプロセスによって読み取り可能であることを示します -
W_OK— ファイルが呼び出しプロセスによって書き込み可能であることを示します -
X_OK— ファイルが呼び出しプロセスによって実行可能であることを示します
ファイルシステムフラグ
flag オプションは、次の値を受け入れることができます
-
a— ファイルを追記用に開きます。ファイルが存在しない場合は作成されます -
ax—aと同じですが、ファイルが既に存在する場合は失敗します -
a+— ファイルを読み取りおよび追記用に開きます。ファイルが存在しない場合は作成されます -
ax+—a+と同じですが、ファイルが既に存在する場合は失敗します -
as— ファイルを同期モードで追記用に開きます。ファイルが存在しない場合は作成されます -
as+— ファイルを同期モードで読み取りおよび追記用に開きます。ファイルが存在しない場合は作成されます -
r— ファイルを読み取り用に開きます。ファイルが存在しない場合は例外が発生します -
r+— ファイルを読み取りおよび書き込み用に開きます。ファイルが存在しない場合は例外が発生します -
rs+— ファイルを同期モードで読み取りおよび書き込み用に開きます。ローカルファイルシステムキャッシュをバイパスするようにオペレーティングシステムに指示します -
w— ファイルを書き込み用に開きます。ファイルが存在しない場合は作成されます。ファイルが存在する場合は上書きされます -
wx—wと同じですが、ファイルが既に存在する場合は失敗します -
w+— ファイルを読み取りおよび書き込み用に開きます。ファイルが存在しない場合は作成されます。ファイルが存在する場合は上書きされます -
wx+—w+と同じですが、ファイルが既に存在する場合は失敗します
クエリ文字列
querystring.decode() |
querystring.encode() |
querystring.escape() |
querystring.parse() |
querystring.stringify() |
querystring.unescape() |
Query String モジュールは、URL クエリ文字列の解析とフォーマットをサポートします (0.4.3)。Query String モジュールオブジェクトは、require('querystring') によって返されます。
querystring.decode()querystring.parse()のエイリアスです。querystring.encode()querystring.stringify()のエイリアスです。querystring.escape(string)-
指定された
stringの URL エンコードを実行し、エスケープされたクエリ文字列を返します。このメソッドはquerystring.stringify()によって使用され、直接使用すべきではありません。 querystring.parse(string[,separator[,equal[,options]]])-
クエリ文字列 URL を解析し、オブジェクトを返します。
separatorパラメータは、クエリ文字列内のキーと値のペアを区切るためのサブストリングです。デフォルトは "&" です。equalパラメータは、クエリ文字列内のキーと値を区切るためのサブストリングです。デフォルトは "=" です。optionsパラメータは、次のキーを持つオブジェクトであると想定されます。decodeURIComponentfunction- クエリ文字列内のパーセントエンコードされた文字をデコードするために使用される関数です。デフォルトは
querystring.unescape()です。 maxKeysnumber- 解析するキーの最大数です。デフォルトは
1000です。0値は、キーをカウントするための制限を削除します。
デフォルトでは、クエリ文字列内のパーセントエンコードされた文字は UTF-8 エンコードを使用すると想定されています。無効な UTF-8 シーケンスは、
U+FFFD置換文字で置き換えられます。たとえば、次のクエリ文字列の場合
'foo=bar&abc=xyz&abc=123'
出力は次のようになります
{ foo: 'bar', abc: ['xyz', '123'] } querystring.stringify(object[,separator[,equal[,options]]])-
オブジェクトをシリアル化し、URL クエリ文字列を返します。
separatorパラメータは、クエリ文字列内のキーと値のペアを区切るためのサブストリングです。デフォルトは "&" です。equalパラメータは、クエリ文字列内のキーと値を区切るためのサブストリングです。デフォルトは "=" です。optionsパラメータは、次のキーを持つオブジェクトであると想定されます。encodeURIComponentfunction- クエリ文字列内の URL セーフでない文字をパーセントエンコードに変換するときに使用する関数です。デフォルトは
querystring.escape()です。
デフォルトでは、クエリ文字列内でパーセントエンコードが必要な文字は UTF-8 でエンコードされます。他のエンコーディングが必要な場合は、
encodeURIComponentオプションを指定する必要があります。たとえば、次のコマンドの場合
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], 123: '' });クエリ文字列は次のようになります
'foo=bar&baz=qux&baz=quux&123='
querystring.unescape(string)-
stringの URL パーセントエンコードされた文字のデコードを実行し、エスケープされていないクエリ文字列を返します。このメソッドはquerystring.parse()によって使用され、直接使用すべきではありません。
XML
xml.parse() |
xml.c14n() |
xml.exclusiveC14n() |
xml.serialize() |
xml.serializeToString() |
XMLDoc |
XMLNode |
XMLAttr |
XML モジュールを使用すると、XML ドキュメントを操作できます ( 0.7.10 以降)。XML モジュールオブジェクトは、require('xml') によって返されます。
例
const xml = require("xml");
let data = `<note><to b="bar" a= "foo" >Tove</to><from>Jani</from></note>`;
let doc = xml.parse(data);
console.log(doc.note.to.$text) /* 'Tove' */
console.log(doc.note.to.$attr$b) /* 'bar' */
console.log(doc.note.$tags[1].$text) /* 'Jani' */
let dec = new TextDecoder();
let c14n = dec.decode(xml.exclusiveC14n(doc.note));
console.log(c14n) /* '<note><to a="foo" b="bar">Tove</to><from>Jani</from></note>' */
c14n = dec.decode(xml.exclusiveC14n(doc.note.to));
console.log(c14n) /* '<to a="foo" b="bar">Tove</to>' */
c14n = dec.decode(xml.exclusiveC14n(doc.note, doc.note.to /* excluding 'to' */));
console.log(c14n) /* '<note><from>Jani</from></note>' */
parse(string|Buffer)- 文字列またはバッファを XML ドキュメントとして解析し、解析された XML ドキュメントを表す
XMLDocラッパーオブジェクトを返します。 c14n(root_node[,excluding_node])- Canonical XML Version 1.1 に従って、
root_nodeとその子を正規化します。root_nodeは、XML 構造体の周りのXMLNodeまたはXMLDocラッパーオブジェクトにすることができます。正規化された出力を含むバッファオブジェクトを返します。excluding_node- ドキュメントの一部を出力から除外できます
exclusiveC14n(root_node[,excluding_node[,withComments[,prefix_list]]])- Exclusive XML Canonicalization Version 1.0 に従って、
root_nodeとその子を正規化します。root_node- XML 構造体の周りの
XMLNodeまたはXMLDocラッパーオブジェクトです excluding_node- ノードとその子に対応するドキュメントの一部を出力から除外できます
withComments- デフォルトでは
falseのブール値です。trueの場合、正規化は Exclusive XML Canonicalization Version 1.0 に対応します。正規化された出力を含むバッファオブジェクトを返します。 prefix_list- 出力にも含める必要がある名前空間の、スペースで区切られた名前空間プレフィックスを含むオプションの文字列です
serialize()xml.c14n()と同じです (0.7.11 以降)。serializeToString()- 結果を
stringとして返すことを除いて、xml.c14n()と同じです (0.7.11 以降)。 XMLDoc- XML 構造体の周りの XMLDoc ラッパーオブジェクト。ドキュメントのルートノードです。
doc.$root- 名前によるドキュメントのルート。または未定義
doc.abcabcという名前の最初のルートタグをXMLNodeラッパーオブジェクトとして取得します
XMLNode- XML タグノードの周りの XMLNode ラッパーオブジェクトです。
node.abcnode.$tag$と同じですabcnode.$attr$abcabcのノードの属性値。 0.7.11 以降、書き込み可能ですnode.$attr$=abcxyznode.setAttribute('と同じです ( 0.7.11 以降)abc',xyz)node.$attrs- ノードのすべての属性の
XMLAttrラッパーオブジェクトです node.$name- ノードの名前
node.$ns- ノードの名前空間
node.$parent- 現在のノードの親ノード
node.$tag$abcabcという名前のノードの最初の子供タグ。 0.7.11から書き込み可能- すべての子タグの配列
node.removeChildren();node.addChild(;node1)node.addChild(と同じ (0.7.11以降)。node2)- ノードの
abcという名前のすべての子タグ。 0.7.11以降書き込み可能 node.$text- ノードの内容。0.7.11以降書き込み可能
node.$text = 'abc'node.setText('abc')と同じ (0.7.11以降)node.addChild(nd)- XMLNode をノードの子として追加します (0.7.11以降)。
ndはノードに追加される前に再帰的にコピーされます。 node.removeAllAttributes()- ノードのすべてのアトリビュートを削除します(0.7.11以降)
node.removeAttribute(attr_name)attr_nameという名前のアトリビュートを削除します(0.7.11以降)node.removeChildren(tag_name)tag_nameという名前のすべての子タグを削除します (0.7.11以降)。tag_nameがない場合は、すべての子タグが削除されます。node.removeText()- ノードのテキスト値を削除します(0.7.11)
node.setAttribute(attr_name,value)attr_nameの値を設定します (0.7.11以降)。値がnullの場合、attr_nameという名前のアトリビュートは削除されます。node.setText(value)- ノードのテキスト値を設定します (0.7.11以降)。値が
nullの場合、ノードのテキストは削除されます。
XMLAttr- XMLノードのアトリビュートをラップする XMLAttrs ラッパーオブジェクト。
attr.abcabcのアトリビュート値
zlib
zlib.deflateRawSync() |
zlib.deflateSync() |
zlib.inflateRawSync() |
zlib.inflateSync() |
zlib モジュールは、"deflate" および "inflate" アルゴリズムを使用した圧縮機能を提供します (0.7.12以降)。zlib モジュールオブジェクトは、require('zlib') によって返されます。
deflateRawSync(string|Buffer[,options])- 文字列または Buffer として提供された "deflate" アルゴリズムを使用してデータを圧縮し、zlib ヘッダーを追加しません。バッファ値は
Buffer、TypedArray、またはDataViewにすることができます。Optionsは、zlib_options を含むオプションのオブジェクトです。圧縮されたデータを含む Buffer インスタンスを返します。 deflateSync(string|Buffer[,options])- 文字列または Buffer として提供された "deflate" アルゴリズムを使用してデータを圧縮します。Buffer 値は
Buffer、TypedArray、またはDataViewにすることができます。Optionsは、zlib_options を含むオプションのオブジェクトです。圧縮されたデータを含む Buffer インスタンスを返します。 inflateRawSync(string|Buffer)- "deflate" アルゴリズムを使用して生のストリームを解凍します。解凍されたデータを含む Buffer インスタンスを返します。
inflateSync(string|Buffer)- "deflate" アルゴリズムを使用してストリームを解凍します。解凍されたデータを含む Buffer インスタンスを返します。
zlib オプション
-
chunkSize— 整数、デフォルトは1024 -
dictionary—Buffer、TypedArray、またはDataView。デフォルトは空 -
level— 整数、圧縮のみ、zlib_compression_levels を参照 -
memLevel—1から9の整数、圧縮のみ -
strategy— 整数、圧縮のみ、zlib_compression_strategy を参照 -
windowBits— 生データの場合は-15から-9の整数、通常のストリームの場合は9から15の整数
zlib 圧縮レベル
| 名前 | 説明 |
zlib.constants.Z_NO_COMPRESSION | 圧縮なし |
zlib.constants.Z_BEST_SPEED | 最速、圧縮率は最小 |
zlib.constants.Z_DEFAULT_COMPRESSION | 速度と圧縮率のトレードオフ |
zlib.constants.Z_BEST_COMPRESSION | 最遅、圧縮率は最大 |
zlib 圧縮ストラテジー
| 名前 | 説明 |
zlib.constants.Z_FILTERED | フィルター処理されたストラテジー: フィルターまたは予測子によって生成されたデータ用 |
zlib.constants.Z_HUFFMAN_ONLY | ハフマンのみのストラテジー: ハフマン符号化のみ、文字列照合なし |
zlib.constants.Z_RLE | ランレングスエンコーディングストラテジー: 一致距離を 1 に制限、PNG 画像データの圧縮率を向上 |
zlib.constants.Z_FIXED | 固定テーブルストラテジー: 動的ハフマンコードの使用を防止、特殊なアプリケーション向けのよりシンプルなデコーダー |
zlib.constants.Z_DEFAULT_STRATEGY | 汎用圧縮に適したデフォルトのストラテジー |