W przypadku najnowszych wersji programu Express zalecenie (przekazywane za pomocą komunikatu debugowania) oznacza zaprzestanie używania oprogramowania pośredniego bodyParser
. Trochę czytam i wygląda na to, że bodyParser jest opakowaniem dla middlewareware json
i urlencoded
- a oto najnowsza wersja Expressu (3.4.4) używa tych 2 zamiast bodyParser
poza zestawem - wspaniały, dobrze?Jak zdobyć pola POST w Expressie, bez korzystania z middleware bodyParser?
Ale teraz nie mogę dostać się na moje pola. req.body
jest niezdefiniowany. Oto mój kod do przesłania formularza JS (tylko pola tekstowe, brak plików). Czy ktoś mógłby mi powiedzieć, którą właściwość/funkcję req
mogę użyć, aby uzyskać wartości?
var formData = new FormData($('#myForm')[0]);
$.ajax({
url: '/myurl',
cache: false,
contentType: false,
processData: false,
data: formData,
type: 'POST',
success: function(data) {
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown) {
console.error('Error occured: ' + errorThrown);
}
});
Zamiast tego można użyć [Busboy] (https://github.com/mscdex/busboy). – adeneo
Nie byłem świadomy ostrzeżenia przed 'bodyParser()'. Był jeden dla 'multipart()', który jest przestarzały. Tak więc możesz użyć pozostałych 2 bezpośrednio: 'app.use (express.json()); app.use (express.urlencoded()); '. –
Dzięki @adeneo, ale czy istnieje sposób na uzyskanie wartości bez uwzględnienia innego zasobu? –