Chcę przeanalizować formularz wieloczęściowy dwa razy: raz, aby pobrać przychodzące pola, a później przetworzyć przesyłanie pliku.
Staram się zachować właściwy rozdział problemów w mojej aplikacji Node:
- Kontroler odpowiada za obsługę pól przychodzących.
- Model odpowiada za logikę pliku do przesłania.
Muszę przekazać dane pól do modelu, aby utworzyć nową instancję, więc dane pól muszą być dostępne przed rozpoczęciem przesyłania pliku.
Obecnie każda form.parse()
lub równoważna funkcja analizuje oba pola i pliki razem . Przykład: req.pipe(busboy)
obsługuje jednocześnie plik i pola.
Sprawdziłem moduły takie jak węzeł multiparty, budzący grozę, busboy, multer. Wydaje się, że nikt nie ma na to rozwiązania.
Przykład tego, co chciałbym osiągnąć, jest tutaj: /programming/22336177/node-js-busboy-parse-fields-and-files-seperatly
Czy to w ogóle możliwe?
Odpowiedzi:
Chcę odpowiedzieć na to pytanie:
Kiedy patrzę na multipart rfc , widzę ten przykład:
Zwracam uwagę, że podobne nagłówki
Content-Type
znajdują się między częściami ciała. Podsumowując, nie można wszystkich nagłówków przed wszystkimi ciałami.Teraz na twoje pytanie:
Zależy to, co rozumiesz przez „parsowanie”. Podczas odczytywania wiadomości HTTP występuje parsowanie, aby wiedzieć, kiedy się kończy. Koniec ma
--
na końcu dodatkowe:Pomysły na parsowanie dwukrotnie:
Tak, są przypadki, w których jest to możliwe (gdy plik jest ostatnią przesłaną rzeczą). Nie wiem, czy jest to ogólnie możliwe, czego potrzebujesz, ponieważ nie wiem dokładnie, co chcesz zrobić.
Mam nadzieję, że to wyjaśnia. Jeśli nie jest to pełna odpowiedź lub nie podoba ci się to, powiedz nam dlaczego, ponieważ może to być cenna informacja zwrotna dla innych próbujących odpowiedzieć na pytanie.
źródło