Quiero analizar un formulario de varias partes dos veces: una para tomar los campos entrantes y luego para procesar la carga del archivo.
Estoy tratando de mantener una separación adecuada de preocupaciones dentro de mi aplicación Node:
- El controlador es responsable de manejar los campos entrantes.
- El modelo es responsable de la lógica del archivo de carga.
Necesito pasar los datos de los campos al modelo para crear una nueva instancia, por lo que los datos de los campos deben estar disponibles antes de que comience la carga del archivo.
Actualmente, cada form.parse()
función o equivalente analiza ambos campos y archivos juntos . Ejemplo: req.pipe(busboy)
maneja ambos archivos y campos juntos.
He comprobado módulos como node-multiparty, formidable, busboy, multer. Nadie parece tener una solución para esto.
Un ejemplo de lo que me gustaría lograr es aquí: /programming/22336177/node-js-busboy-parse-fields-and-files-seperatly
¿Es esto posible?
Respuestas:
Quiero responder esta pregunta:
Cuando miro el rfc multiparte , veo este ejemplo:
Observo que los encabezados como
Content-Type
se encuentran entre las partes del cuerpo. Por lo tanto, concluyo, no puedes todos los encabezados antes de todos los cuerpos.Ahora a su pregunta:
Depende de lo que quieras decir con "análisis". Hay algún análisis involucrado al leer el mensaje HTTP para saber cuándo termina. El final tiene un adicional
--
al final:Ideas para analizar dos veces:
Sí, hay casos en los que es posible (cuando el archivo es lo último que carga). No sé si es universalmente posible lo que necesita, ya que no sé exactamente lo que quiere hacer.
Espero que esto aclare las cosas. Si esta no es una respuesta completa o si no le gusta, díganos por qué, ya que esto podría ser un comentario valioso para otros que intentan responder la pregunta.
fuente