Quero analisar um formulário de várias partes duas vezes: uma vez para pegar os campos recebidos e depois para processar o upload do arquivo.
Estou tentando manter uma separação adequada de preocupações no meu aplicativo Node:
- O controlador é responsável por manipular os campos recebidos.
- O modelo é responsável pela lógica do upload de arquivos.
Preciso passar os dados dos campos para o modelo para criar uma nova instância, para que os dados dos campos precisem estar disponíveis antes do início do upload do arquivo.
Atualmente, todas as form.parse()
funções ou funções equivalentes analisam campos e arquivos juntos . Exemplo: req.pipe(busboy)
lida com arquivos e campos juntos.
Eu verifiquei módulos como node-multiparty, formidable, busboy, multer. Ninguém parece ter uma solução para isso.
Um exemplo do que eu gostaria de obter está aqui: /programming/22336177/node-js-busboy-parse-fields-and-files-seperatly
Isso é possível?
Respostas:
Quero responder a esta pergunta:
Quando olho para o rfc multipartes , vejo este exemplo:
Noto que os cabeçalhos
Content-Type
estão localizados entre as partes do corpo. Assim, concluo, você não pode todos os cabeçalhos antes de todos os corpos.Agora à sua pergunta:
Depende do que você quer dizer com "análise". Há alguma análise envolvida ao ler a mensagem HTTP para saber quando ela termina. O final tem um adicional
--
no final:Ideias para analisar duas vezes:
Sim, há casos em que isso é possível (quando o arquivo é a última coisa que você carrega). Não sei se é universalmente possível o que você precisa, pois não sei exatamente o que você quer fazer.
Eu espero que isto esclareça as coisas. Se essa não for uma resposta completa ou se você não gostar, informe-nos o motivo, pois isso pode ser um feedback valioso para outras pessoas que tentam responder à pergunta.
fonte