Cosa significa "esteso" in Express 4.0?


90

Sto usando express e anche body-parser nella mia app.

app.use(bodyParser.urlencoded({ extended: false }));

Ma cosa significa "esteso" in Express 4.0?

ho trovato questo

extended - parse extended syntax with the qs module.

Tuttavia, non riesco ancora a capire cosa significhi.

Risposte:



80

Quando la extendedproprietà è impostata su true, i dati con codifica URL verranno analizzati con la libreria qs .

Anzi,

quando la extendedproprietà è impostata su false, i dati con codifica URL verranno invece analizzati con la libreria stringa di query .


Le differenze tra l'analisi con `qs library` e` querystring library`

  • La libreria qs consente di creare un oggetto nidificato dalla stringa di query.

    var qs = require("qs")
    var result = qs.parse("person[name]=bobby&person[age]=3")
    console.log(result) // { person: { name: 'bobby', age: '3' } }
    


  • la libreria di stringhe di query non supporta la creazione di un oggetto nidificato dalla stringa di query.

    var queryString = require("query-string")
    var result = queryString.parse("person[name]=bobby&person[age]=3")
    console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
    


  • la libreria qs non filtrerà '?' dalla stringa di query.

    var qs = require("qs")
    var result = qs.parse("?a=b")
    console.log(result) // { '?a': 'b' }
    


  • la libreria di stringhe di query filtrerà "?" dalla stringa di query.

    var queryString = require("query-string")
    var result = queryString.parse("?a=b")
    console.log(result) // { a: 'b' }
    

app.use(bodyParser.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded


Per ulteriori informazioni, puoi fare riferimento alla risposta di Leonid Beschastny e npm confronta qs vs query-string .



1
dovrebbe essere la risposta selezionata
nishi

Questo deve essere selezionato come risposta giusta.
AwsAnurag

21

Dai documenti di Body-Parser:

Un nuovo oggetto body contenente i dati analizzati viene popolato sull'oggetto richiesta dopo il middleware (cioè req.body). Questo oggetto conterrà coppie chiave-valore, dove il valore può essere una stringa o un array (se esteso è falso) o qualsiasi tipo (quando esteso è vero).

E

L'opzione estesa consente di scegliere tra l'analisi dei dati codificati in URL con la libreria querystring (se falsa) o la libreria qs (se vera). La sintassi "estesa" consente la codifica di array e oggetti ricchi nel formato con codifica URL, consentendo un'esperienza simile a JSON con codifica URL. Per ulteriori informazioni, vedere la libreria qs.

Fondamentalmente esteso consente di analizzare oggetti completi.

Parser del corpo: URL codificato

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.