2015-04-20 25 views
11

Zajmuję się tworzeniem RESTful API dla aplikacji klienta mobilnego z połączeniem Node.js, Express.js i Mongodb. Teraz próbuję sobie poradzić z przesyłaniem obrazu profilu użytkownika i znalazłem moduł o nazwie "multer" (to jest ten sam zespół express.js), który pozwala express.app obsługiwać multipart/formularz -dane żądania. Teraz muszę przetestować aplikację, a ponadto funkcję przesyłania, ale nie mogę zasymulować żądania formularza http (za pomocą wtyczki chrome postman). Multer zwraca ten błąd:Prześlij plik na aplikację Express.js

[Błąd: Multipart: Granica nie znaleziono]

w rzeczywistości, porównując żądania http-formularz (który działa) z prośbą zwyczaj http, drugi nie ma Właściwość nagłówka granicy.

Co to jest właściwość Boundary?

Odpowiedz

8

Granica w postaci wieloczęściowej wskazuje na pewien separator, który oddziela tekst i dane binarne. Możesz to zrobić w listonoszu, ale brzmi to tak, jakbyś nie wysyłał zarówno pliku, jak i tekstu, więc listonosz może domyślnie do zwykłego formularza. widzisz coś takiego:

postman-form-multipart

Jeśli klikniesz podgląd w listonosza widać granicę w nagłówku Content-Type i w organizmie.

+7

Ponadto odkryłem, że nie ma potrzeby ręcznego określania właściwości Content-Type ... W takim przypadku pojawia się ten sam błąd. –

35

Jeśli korzystasz z usługi Postman, możesz spróbować usunąć nagłówek: "Content-type": "multipart/form-data". Usunąłem go i teraz działa.

+1

Tak, to działa; ale w prawdziwym scenariuszu nagłówek 'Content-Type' będzie faktycznie" wieloczęściowy/formularz-dane ". Czy w tym przypadku multer działa poprawnie? – scaryguy

+0

@scaryguy: Listonosz dodaje je domyślnie –

+0

To działało dla mnie za pomocą ES6 'fetch', również. – brandones

Powiązane problemy