Skip to content

Stringa di query

[Stabile: 2 - Stabile]

Stabile: 2 Stabilità: 2 - Stabile

Codice sorgente: lib/querystring.js

Il modulo node:querystring fornisce utility per l'analisi e la formattazione di stringhe di query URL. È accessibile tramite:

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 di querystring.parse().

querystring.encode()

Aggiunto in: v0.1.99

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

querystring.escape(str)

Aggiunto in: v0.1.25

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

Il metodo querystring.escape() è utilizzato da querystring.stringify() e generalmente non dovrebbe essere utilizzato direttamente. Viene esportato principalmente per consentire al codice dell'applicazione di fornire un'implementazione alternativa di codifica percentuale se necessario assegnando querystring.escape a una funzione alternativa.

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

[Cronologia]

VersioneModifiche
v8.0.0Più voci vuote vengono ora analizzate correttamente (es. &=&=).
v6.0.0L'oggetto restituito non eredita più da Object.prototype.
v6.0.0, v4.2.4Il parametro eq può ora avere una lunghezza maggiore di 1.
v0.1.25Aggiunto in: v0.1.25
  • str <string> La stringa di query URL da analizzare
  • sep <string> La sottostringa utilizzata per delimitare le coppie chiave-valore nella stringa di query. Predefinito: '&'.
  • eq <string>. La sottostringa utilizzata per delimitare chiavi e valori nella stringa di query. Predefinito: '='.
  • options <Object>
    • decodeURIComponent <Function> La funzione da utilizzare quando si decodificano i caratteri percentualmente codificati nella stringa di query. Predefinito: querystring.unescape().
    • maxKeys <number> Specifica il numero massimo di chiavi da analizzare. Specificare 0 per rimuovere le limitazioni del conteggio delle chiavi. Predefinito: 1000.

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

Ad esempio, la stringa di query '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 JavaScript. Ciò significa che i metodi Object tipici come obj.toString(), obj.hasOwnProperty(), e altri non sono definiti e non funzioneranno.

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

js
// Supponendo che la funzione gbkDecodeURIComponent esista già...

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 usata per delimitare le coppie chiave-valore nella stringa di query. Default: '&'.
  • eq <string>. La sottostringa usata per delimitare le chiavi e i valori nella stringa di query. Default: '='.
  • options
    • encodeURIComponent <Function> La funzione da usare quando si convertono i caratteri non sicuri per URL in percentuale di codifica nella stringa di query. Default: 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à convertito 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 percentuale di codifica all'interno della stringa di query verranno codificati come UTF-8. Se è necessaria una codifica alternativa, sarà 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)

Aggiunto in: v0.1.25

Il metodo querystring.unescape() esegue la decodifica dei caratteri percentualmente codificati URL nella stringa str fornita.

Il metodo querystring.unescape() è 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 decodeURIComponent() integrato in JavaScript per la decodifica. In caso di fallimento, verrà utilizzata un'equivalente più sicura che non genera eccezioni su URL malformati.