2015-03-20 8 views
15

W bieżącej wersji body-parser, wymagana jest teraz opcja extended podczas korzystania z bodyParser.urlencoded(). W README wyjaśniono:body-parser - opcja rozszerzona (qs vs querystring)

Rozszerzona opcja umożliwia wybór między analizowaniem danych zakodowanych za pomocą adresów URL a biblioteką kwerend (gdy jest to wartość false) lub biblioteką qs (gdy jest to prawda).

[...]

Domyślnie prawda, ale przy użyciu domyślnego została zaniechana. Proszę zbadać różnicę między qs i querystring i wybrać odpowiednie ustawienie.

Nie mogłem znaleźć żadnych pomocnych ani szczegółowych informacji na ten temat. Znalazłem tylko przestarzałą wersję: node-querystring.

Czy ta opcja zawsze musi być prawdziwa?

Odpowiedz

28

Powodem tej wiadomości jest to, że body-parser to about to change default value for extended from true to false.

Rozszerzony protokół używa qs library do przeanalizowania danych x-www-form-urlencoded. Główną zaletą qs jest to, że wykorzystuje bardzo potężny algorytm szeregowania/deserializacji, zdolny do serializowania dowolnej struktury danych podobnej do json.

Jednak przeglądarki internetowe normalnie nie używają tego protokołu, ponieważ x-www-form-urlencoded został zaprojektowany do serializowania płaskich formularzy html. Może się jednak przydać, jeśli zamierzasz wysyłać rozbudowane struktury danych za pomocą ajax.

querystring library` dostarcza podstawowy algorytm szeregowania/deserializacji, stosowany przez wszystkie przeglądarki internetowe do serializowania danych formularzy. Ten podstawowy algorytm jest znacznie prostszy niż rozszerzony, ale ograniczony do płaskich struktur danych.

Oba algorytmy działają dokładnie tak samo z płaskimi danymi.

Teraz, gdy znasz zalety i wady obu algorytmów, sam decydujesz, który z nich lepiej pasuje do twojej aplikacji.

+1

dzięki za kilka. mam nadzieję, że nie jestem po prostu zły w googlowaniu, a to pomoże komuś innemu –

+2

po prostu skomentować, że 'extended: false' messes up 2D tablice :( – woojoo666

+2

@ woojoo666 to dlatego, że podstawowy algorytm serializacji/deserializacji nie obsługuje zagnieżdżonych struktur danych. –

Powiązane problemy