Ich möchte ein mehrteiliges Formular zweimal analysieren: einmal, um die eingehenden Felder abzurufen und später, um den Datei-Upload zu verarbeiten.
Ich versuche, eine ordnungsgemäße Trennung der Bedenken in meiner Node-App aufrechtzuerhalten:
- Der Controller ist für die Bearbeitung der eingehenden Felder verantwortlich.
- Das Modell ist für die Logik der Upload-Datei verantwortlich.
Ich muss die Felddaten an das Modell übergeben, um eine neue Instanz zu erstellen. Daher müssen die Felddaten verfügbar sein, bevor der Datei-Upload beginnt.
Derzeit form.parse()
analysiert jede oder eine gleichwertige Funktion sowohl Felder als auch Dateien zusammen . Beispiel: req.pipe(busboy)
Behandelt sowohl Dateien als auch Felder zusammen.
Ich habe Module wie Node-Multiparty, Formidable, Busboy, Multer überprüft. Niemand scheint eine Lösung dafür zu haben.
Ein Beispiel dafür, was ich erreichen möchte, ist hier: /programming/22336177/node-js-busboy-parse-fields-and-files-seperatly
Ist das überhaupt möglich?
Antworten:
Ich möchte diese Frage beantworten:
Wenn ich mir den mehrteiligen RFC ansehe , sehe ich dieses Beispiel:
Ich stelle fest, dass sich die Header wie
Content-Type
zwischen den Körperteilen befinden. Daraus schließe ich, dass Sie nicht alle Überschriften vor allen Körpern haben können.Nun zu Ihrer Frage:
Es kommt darauf an, was Sie unter "Parsen" verstehen. Beim Lesen der HTTP-Nachricht ist eine Analyse erforderlich, um festzustellen, wann sie endet. Das Ende hat eine zusätzliche
--
am Ende:Ideen zum zweimaligen Parsen:
Ja, es gibt Fälle, in denen dies möglich ist (wenn die Datei das letzte ist, was Sie hochladen). Ich weiß nicht, ob es allgemein möglich ist, was Sie brauchen, da ich nicht genau weiß, was Sie tun möchten.
Ich hoffe das klärt die Dinge. Wenn dies keine vollständige Antwort ist oder Sie dies nicht mögen, teilen Sie uns bitte mit, warum dies so ist, da dies ein wertvolles Feedback für andere sein kann, die versuchen, die Frage zu beantworten.
quelle