Я хочу проанализировать составную форму дважды: один раз, чтобы получить входящие поля, а затем обработать загрузку файла.
Я пытаюсь поддерживать правильное разделение проблем в моем приложении Node:
- Контроллер отвечает за обработку входящих полей.
- Модель отвечает за логику загрузки файла.
Мне нужно передать данные полей в модель, чтобы создать новый экземпляр, поэтому данные полей должны быть доступны до начала загрузки файла.
В настоящее время каждая form.parse()
или эквивалентная функция анализирует поля и файлы вместе . Пример: req.pipe(busboy)
обрабатывает файл и поля вместе.
Я проверил такие модули, как node-multiparty, грозный, busboy, multer. Кажется, ни у кого нет решения для этого.
Пример того, чего я хотел бы достичь, находится здесь: /programming/22336177/node-js-busboy-parse-fields-and-files-seperatly
Это вообще возможно?
Ответы:
Я хочу ответить на этот вопрос:
Когда я смотрю на multipart rfc , я вижу этот пример:
Отмечу, что заголовки вроде
Content-Type
расположены между частями тела. Таким образом, я пришел к выводу, вы не можете все заголовки перед всеми органами.Теперь к вашему вопросу:
Это зависит от того, что вы подразумеваете под "разбором". При чтении HTTP-сообщения происходит анализ, чтобы узнать, когда оно заканчивается. Конец имеет дополнительный
--
в конце:Идеи разбора дважды:
Да, есть случаи, когда это возможно (когда файл является последним загруженным файлом). Я не знаю, возможно ли всеобщее, что вам нужно, потому что я не знаю точно, что вы хотите сделать.
Я надеюсь, что это проясняет вещи. Если это не полный ответ или вам это не нравится, скажите нам, почему, потому что это может быть ценным откликом для тех, кто пытается ответить на вопрос.
источник