@hollanditkzn

Как получать текст в модули multipart?

Как если приходят не файлы а другие данные, допустим текст, дата и т.д. И как можно их обрабатывать? Или как обрабатывать данные с помощью ajax когда отправляешь FormData().
Вот что я пишу. В ajax
console.log($(this).serialize());
		let formData = new FormData($(this)[0]);//создал объект FormData
		e.preventDefault();
		$.ajax({
			url: 'create/zakaz',
			type: 'POST',
            contentType: false,
            processData: false,
			dataType: 'json',
			data: formData
		}).done((result)=> {
			if (result === true){//если успешно, то форма сбрасывается и модальное окно закрывается
				this.reset();
				$('#modal1').modal('close');
			} else {
				console.log('Не сохранились данные');
			}
		}).fail((textStatus) => {
//если ошибка то в консоль выводит статус ошибки
			console.error('Произошла ошибка '+textStatus);
		});
	});

Получаю вот такой ответ 5a09801821119568800498.png
И пытаюсь обработать
let express = require('express'),
    multiparty = require('multiparty'),
    router = express.Router();

router.post('/zakaz', (req, res) => {
   let form = new multiparty.Form();

   form.on('error', (err) => {
      console.log('Ошибка парсинга формы '+err);
   });

   form.on('part', (part) => {
      if(!part.filename){
         console.log(part);//Вот здесь я проверил это файл или нет, и как тут вывести данные которые приходят?
         console.log('Поле содержит текст '+ part.name);
         part.resume();
      }
      if(part.filename){
//тут уже имеется файл
         console.log('Поле содержит файл ' + part.name);
          part.resume();
      }
   });

    form.on('close', () => {
       console.log('Зарузка завершена');
    });

   form.parse(req);
   res.send(true);
  });

module.exports = router;
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
EShein
@EShein
Shein
А зачем? Если вы хотите json обычный передать то передайте его.
$.ajax({
      url: 'create/zakaz',
      type: 'POST',
      dataType: 'json',
      data: {id: 1, userId:2}, //для примера
      success: fucntion(data){
       },
      error: function(err){
      }
});

А потом ловите их в req.body.
router.post('/zakaz', function(req,res,next){
    console.log(req.body);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект