Skip to content

Query string

[Stable: 2 - Stabile]

Stable: 2 Stabilità: 2 - Stabile

Codice sorgente: lib/querystring.js

Il modulo node:querystring fornisce utility per analizzare e formattare le query string degli URL. È possibile accedervi utilizzando:

js
const querystring = require('node:querystring');

querystring è più performante di <URLSearchParams> ma non è un'API standardizzata. Utilizzare <URLSearchParams> quando le prestazioni non sono critiche o quando è desiderabile la compatibilità con il codice del browser.

querystring.decode()

Aggiunto in: v0.1.99

La funzione querystring.decode() è un alias per querystring.parse().

querystring.encode()

Aggiunto in: v0.1.99

La funzione querystring.encode() è un alias per querystring.stringify().

querystring.escape(str)

Aggiunto in: v0.1.25

Il metodo querystring.escape() esegue la codifica URL percento sulla str fornita in un modo ottimizzato per i requisiti specifici delle query string degli URL.

Il metodo querystring.escape() viene utilizzato da querystring.stringify() e in genere non ci si aspetta che venga utilizzato direttamente. Viene esportato principalmente per consentire al codice dell'applicazione di fornire un'implementazione alternativa di codifica percento, se necessario, assegnando querystring.escape a una funzione alternativa.

querystring.parse(str[, sep[, eq[, options]]])

[Cronologia]

VersioneModifiche
v8.0.0Voci multiple vuote ora vengono analizzate correttamente (ad esempio &=&=).
v6.0.0L'oggetto restituito non eredita più da Object.prototype.
v6.0.0, v4.2.4Il parametro eq ora può avere una lunghezza superiore a 1.
v0.1.25Aggiunto in: v0.1.25
  • str <stringa> La query string URL da analizzare
  • sep <stringa> La sottostringa utilizzata per delimitare le coppie chiave e valore nella query string. Predefinito: '&'.
  • eq <stringa>. La sottostringa utilizzata per delimitare le chiavi e i valori nella query string. Predefinito: '='.
  • options <Oggetto>
    • decodeURIComponent <Funzione> La funzione da utilizzare durante la decodifica dei caratteri con codifica percento nella query string. Predefinito: querystring.unescape().
    • maxKeys <numero> Specifica il numero massimo di chiavi da analizzare. Specificare 0 per rimuovere le limitazioni di conteggio delle chiavi. Predefinito: 1000.

Il metodo querystring.parse() analizza una query string URL (str) in una raccolta di coppie chiave e valore.

Ad esempio, la query string 'foo=bar&abc=xyz&abc=123' viene analizzata in:

json
{
  "foo": "bar",
  "abc": ["xyz", "123"]
}

L'oggetto restituito dal metodo querystring.parse() non eredita prototipicamente da Object di JavaScript. Ciò significa che i metodi tipici di Object come obj.toString(), obj.hasOwnProperty() e altri non sono definiti e non funzioneranno.

Per impostazione predefinita, si presume che i caratteri con codifica percento all'interno della query string utilizzino la codifica UTF-8. Se viene utilizzata una codifica dei caratteri alternativa, sarà necessario specificare un'opzione decodeURIComponent alternativa:

js
// Assuming gbkDecodeURIComponent function already exists...

querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,
                  { decodeURIComponent: gbkDecodeURIComponent });

querystring.stringify(obj[, sep[, eq[, options]]])

Aggiunto in: v0.1.25

  • obj <Object> L'oggetto da serializzare in una stringa di query URL
  • sep <string> La sottostringa utilizzata per delimitare le coppie chiave e valore nella stringa di query. Predefinito: '&'.
  • eq <string>. La sottostringa utilizzata per delimitare chiavi e valori nella stringa di query. Predefinito: '='.
  • options
    • encodeURIComponent <Function> La funzione da utilizzare quando si convertono caratteri non sicuri per URL in codifica percentuale nella stringa di query. Predefinito: querystring.escape().

Il metodo querystring.stringify() produce una stringa di query URL da un dato obj iterando attraverso le "proprietà proprie" dell'oggetto.

Serializza i seguenti tipi di valori passati in obj: <string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <bigint[]> | <boolean[]> I valori numerici devono essere finiti. Qualsiasi altro valore di input verrà forzato in stringhe vuote.

js
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// Restituisce 'foo=bar&baz=qux&baz=quux&corge='

querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// Restituisce 'foo:bar;baz:qux'

Per impostazione predefinita, i caratteri che richiedono la codifica percentuale all'interno della stringa di query verranno codificati come UTF-8. Se è richiesta una codifica alternativa, è necessario specificare un'opzione encodeURIComponent alternativa:

js
// Supponendo che la funzione gbkEncodeURIComponent esista già,

querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
                      { encodeURIComponent: gbkEncodeURIComponent });

querystring.unescape(str)

Aggiunta in: v0.1.25

Il metodo querystring.unescape() esegue la decodifica dei caratteri con codifica percentuale URL sulla str fornita.

Il metodo querystring.unescape() viene utilizzato da querystring.parse() e generalmente non ci si aspetta che venga utilizzato direttamente. Viene esportato principalmente per consentire al codice dell'applicazione di fornire un'implementazione di decodifica sostitutiva se necessario assegnando querystring.unescape a una funzione alternativa.

Per impostazione predefinita, il metodo querystring.unescape() tenterà di utilizzare il metodo integrato di JavaScript decodeURIComponent() per decodificare. Se ciò fallisce, verrà utilizzato un equivalente più sicuro che non genera eccezioni su URL non validi.