Ekspres 4.0'da 'genişletilmiş' ne anlama geliyor?


90

Uygulamamda ekspres ve ayrıca vücut ayrıştırıcı kullanıyorum.

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

Ancak, "genişletilmiş", ifade 4.0'da ne anlama geliyor?

Bunu buldum

extended - parse extended syntax with the qs module.

Ancak bunun ne anlama geldiğini hala anlayamıyorum.

Yanıtlar:



80

Ne zaman extendedözelliği olarak ayarlanır true, URL olarak kodlanmış veriler ile ayrıştırılır qs kütüphanede .

Aksine,

ne zaman extendedözelliği ayarlandığında false, URL olarak kodlanmış veriler yerine birlikte ayrıştırılır querystring kütüphanesine .


"Qs kitaplığı" ile "sorgu dizesi kitaplığı" ile ayrıştırma arasındaki farklar

  • qs kitaplığı, sorgu dizenizden yuvalanmış bir nesne oluşturmanıza olanak sağlar .

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


  • sorgu dizesi kitaplığı , sorgu dizenizden iç içe bir nesne oluşturmayı desteklemez.

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


  • QS kütüphane olacak değil filtre '?' sorgu dizesinden.

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


  • sorgu dizesi kitaplığı '?' sorgu dizesinden.

    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


Daha fazla bilgi için Leonid Beschastny'nin cevabına bakabilir ve npm qs ile sorgu dizesini karşılaştırabilirsiniz .



1
seçilen cevap olmalıdır
nishi

Doğru cevap olarak bu seçilmelidir.
AwsAnurag

21

Body-Parser belgelerinden:

Ayrıştırılmış verileri içeren yeni bir gövde nesnesi, ara yazılımdan (yani req.body) sonra istek nesnesine doldurulur. Bu nesne, değerin bir dize veya dizi (genişletilmiş yanlış olduğunda) veya herhangi bir tür (genişletilmiş doğru olduğunda) olabileceği anahtar-değer çiftleri içerecektir.

Ve

Genişletilmiş seçenek, URL kodlu verilerin sorgu dizesi kitaplığıyla (yanlış olduğunda) veya qs kitaplığıyla (doğru olduğunda) ayrıştırılması arasında seçim yapmaya izin verir. "Genişletilmiş" sözdizimi, zengin nesnelerin ve dizilerin URL kodlu biçime kodlanmasına ve URL kodlamalı JSON benzeri bir deneyime izin verir. Daha fazla bilgi için lütfen qs kitaplığına bakın.

Temelde genişletilmiş, tüm nesneleri ayrıştırmanıza olanak tanır.

Vücut Ayrıştırıcı: URL Kodlanmış

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.