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:
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
str
<stringa>
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]
Versione | Modifiche |
---|---|
v8.0.0 | Voci multiple vuote ora vengono analizzate correttamente (ad esempio &=&= ). |
v6.0.0 | L'oggetto restituito non eredita più da Object.prototype . |
v6.0.0, v4.2.4 | Il parametro eq ora può avere una lunghezza superiore a 1 . |
v0.1.25 | Aggiunto in: v0.1.25 |
str
<stringa> La query string URL da analizzaresep
<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. Specificare0
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:
{
"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:
// 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 URLsep
<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.
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:
// Supponendo che la funzione gbkEncodeURIComponent esista già,
querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
{ encodeURIComponent: gbkEncodeURIComponent });
querystring.unescape(str)
Aggiunta in: v0.1.25
str
<stringa>
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.