Node.js v21.7.2 ドキュメント
- Node.js v21.7.2
- ► 目次
-
► インデックス
- アサーションテスト
- 非同期コンテキスト追跡
- 非同期フック
- バッファ
- C++ アドオン
- Node-API を使用した C/C++ アドオン
- C++ エンベッダー API
- 子プロセス
- クラスタ
- コマンドラインオプション
- コンソール
- Corepack
- 暗号
- デバッガ
- 非推奨 API
- 診断チャネル
- DNS
- ドメイン
- エラー
- イベント
- ファイルシステム
- グローバル
- HTTP
- HTTP/2
- HTTPS
- インスペクタ
- 国際化
- モジュール: CommonJS モジュール
- モジュール: ECMAScript モジュール
- モジュール:
node:module
API - モジュール: パッケージ
- Net
- OS
- パス
- パフォーマンスフック
- パーミッション
- プロセス
- Punycode
- クエリ文字列
- Readline
- REPL
- レポート
- 単一実行ファイルアプリケーション
- ストリーム
- 文字列デコーダ
- テストランナー
- タイマー
- TLS/SSL
- トレースイベント
- TTY
- UDP/データグラム
- URL
- ユーティリティ
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- ワーカースレッド
- Zlib
- ► 他のバージョン
- ► オプション
クエリ文字列#
ソースコード: lib/querystring.js
node:querystring
モジュールは、URL クエリ文字列を解析およびフォーマットするためのユーティリティを提供します。以下を使用してアクセスできます。
const querystring = require('node:querystring');
querystring
は <URLSearchParams> よりもパフォーマンスに優れていますが、標準化された API ではありません。パフォーマンスが重要でない場合、またはブラウザコードとの互換性が望ましい場合は、<URLSearchParams> を使用してください。
querystring.decode()
#
querystring.decode()
関数は querystring.parse()
のエイリアスです。
querystring.encode()
#
querystring.encode()
関数は querystring.stringify()
のエイリアスです。
querystring.escape(str)
#
str
<string>
querystring.escape()
メソッドは、指定された`str` に対して、URL クエリ文字列の特定の要件に最適化された方法で URL パーセントエンコーディングを実行します。
querystring.escape()
メソッドは querystring.stringify()
によって使用され、一般的に直接使用されることは想定されていません。これは主に、アプリケーションコードが必要に応じて `querystring.escape` を別の関数に割り当てることによって、代替のパーセントエンコーディング実装を提供できるようにするためにエクスポートされます。
querystring.parse(str[, sep[, eq[, options]]])
#
str
<string> 解析する URL クエリ文字列sep
<string> クエリ文字列内のキーと値のペアを区切るために使用される部分文字列。 **デフォルト:** `'&'`.eq
<string> クエリ文字列内のキーと値を区切るために使用される部分文字列。 **デフォルト:** `'='`.options
<Object>decodeURIComponent
<Function> クエリ文字列内のパーセントエンコードされた文字をデコードするときに使用する関数。 **デフォルト:** `querystring.unescape()`.maxKeys
<number> 解析するキーの最大数を指定します。キーカウントの制限を削除するには、`0` を指定します。 **デフォルト:** `1000`.
querystring.parse()
メソッドは、URL クエリ文字列 (`str`) をキーと値のペアのコレクションに解析します。
たとえば、クエリ文字列 `'foo=bar&abc=xyz&abc=123'` は次のように解析されます。
{
"foo": "bar",
"abc": ["xyz", "123"]
}
querystring.parse()
メソッドによって返されるオブジェクトは、JavaScript の `Object` からプロトタイプ的に継承*しません*。これは、`obj.toString()`、`obj.hasOwnProperty()` などの一般的な `Object` メソッドが定義されておらず、*動作しない*ことを意味します。
デフォルトでは、クエリ文字列内のパーセントエンコードされた文字は UTF-8 エンコーディングを使用していると見なされます。別の文字エンコーディングが使用されている場合は、別の `decodeURIComponent` オプションを指定する必要があります。
// Assuming gbkDecodeURIComponent function already exists...
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
{ decodeURIComponent: gbkDecodeURIComponent });
querystring.stringify(obj[, sep[, eq[, options]]])
#
obj
<Object> URL クエリ文字列にシリアライズするオブジェクトsep
<string> クエリ文字列内のキーと値のペアを区切るために使用される部分文字列。 **デフォルト:** `'&'`.eq
<string> クエリ文字列内のキーと値を区切るために使用される部分文字列。 **デフォルト:** `'='`.オプション
encodeURIComponent
<Function> クエリ文字列で URL 非安全文字をパーセントエンコーディングに変換するときに使用する関数。 **デフォルト:** `querystring.escape()`.
querystring.stringify()
メソッドは、オブジェクトの「独自の プロパティ」を反復処理することにより、指定された `obj` から URL クエリ文字列を生成します。
これは、`obj` に渡される次のタイプの値をシリアライズします: <string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <bigint[]> | <boolean[]> 数値は有限でなければなりません。その他の入力値は空の文字列に強制されます。
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// Returns 'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// Returns 'foo:bar;baz:qux'
デフォルトでは、クエリ文字列内でパーセントエンコーディングを必要とする文字は UTF-8 としてエンコードされます。別のエンコーディングが必要な場合は、別の `encodeURIComponent` オプションを指定する必要があります。
// Assuming gbkEncodeURIComponent function already exists,
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: gbkEncodeURIComponent });
querystring.unescape(str)
#
str
<string>
querystring.unescape()
メソッドは、指定された `str` に対して URL パーセントエンコードされた文字のデコードを実行します。
querystring.unescape()
メソッドは querystring.parse()
によって使用され、一般的に直接使用されることは想定されていません。これは主に、アプリケーションコードが必要に応じて `querystring.unescape` を別の関数に割り当てることによって、代替のデコード実装を提供できるようにするためにエクスポートされます。
デフォルトでは、`querystring.unescape()` メソッドは、JavaScript 組み込みの `decodeURIComponent()` メソッドを使用してデコードを試みます。それが失敗した場合、不正な形式の URL でスローしない、より安全な同等のものが使用されます。