Je veux analyser un formulaire en plusieurs parties deux fois: une fois pour saisir les champs entrants, et plus tard pour traiter le téléchargement du fichier.
J'essaie de maintenir une séparation appropriée des préoccupations au sein de mon application Node:
- Le contrôleur est responsable de la gestion des champs entrants.
- Le modèle est responsable de la logique de téléchargement du fichier.
Je dois transmettre les données des champs au modèle pour créer une nouvelle instance, de sorte que les données des champs doivent être disponibles avant le début du téléchargement du fichier.
Actuellement, chaque form.parse()
fonction ou une fonction équivalente analyse les champs et les fichiers ensemble . Exemple: req.pipe(busboy)
gère à la fois le fichier et les champs.
J'ai vérifié des modules comme node-multiparty, formidable, busboy, multer. Personne ne semble avoir de solution à cela.
Un exemple de ce que j'aimerais réaliser est ici: /programming/22336177/node-js-busboy-parse-fields-and-files-seperatly
Est-ce seulement possible?
Réponses:
Je veux répondre à cette question:
Quand je regarde le rfc en plusieurs parties , je vois cet exemple:
Je note que les en-têtes comme
Content-Type
sont situés entre les parties du corps. Ainsi je conclus, vous ne pouvez pas tous les en-têtes devant tous les corps.Passons maintenant à votre question:
Cela dépend de ce que vous entendez par "analyse". Une analyse syntaxique est impliquée lors de la lecture du message HTTP pour savoir quand il se termine. La fin a un supplémentaire
--
à la fin:Idées pour analyser deux fois:
Oui, il y a des cas où cela est possible (lorsque le fichier est la dernière chose que vous téléchargez). Je ne sais pas s'il est universellement possible ce dont vous avez besoin car je ne sais pas exactement ce que vous voulez faire.
J'espère que cela clarifie les choses. Si ce n'est pas une réponse complète ou si vous n'aimez pas cela, veuillez nous en expliquer la raison, car cela pourrait être un retour précieux pour les autres qui essaient de répondre à la question.
la source