Не удается получить правильный формат данных в req.body

#javascript #node.js

#javascript #node.js

Вопрос:

Я пытаюсь проанализировать тело в NodeJS, но я получаю его обратно в неправильном формате.

Это мой код:

 fetch("http://localhost:5000/email", {
      method: "POST",
      headers: { "Content-Type": "application/x-www-form-urlencoded" },

      body: JSON.stringify({ shareUrl: props.shareUrl })
    });`
  

Вот как это анализируется, когда console.log(body.req.shareUrl) в Node

 { '{"shareUrl":"link"}': '' }
  

вот как я хочу его вернуть

 { 'shareUrl': 'link' }
  

Редактировать

Когда я пытаюсь отправить его из Postman, он работает нормально

введите описание изображения здесь

Я получаю следующий вывод:

 { Name: 'jej' }
  

Комментарии:

1. Что, если вы удалите JSON.stringify из body ?

2. Я уже пробовал это, та же проблема :/

3. Можете ли вы попробовать установить свой заголовок на 'Content-Type': 'application/json'

4. Я уже пробовал это тоже, те же результаты

5. проверьте, есть ли у stringified вашего props.shareUrl

Ответ №1:

Тип содержимого:

 { "Content-Type": "application/x-www-form-urlencoded" }
  

не улучшено для отправки данных JSON в первую очередь.

Если вы хотите отправлять и получать JSON, измените тип содержимого на:

 { "Content-Type": "application/json" }
  

Нравится:

 fetch("http://localhost:5000/email", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: { data: json.stringify({shareUrl: props.shareUrl}) }
    });`
  

На сервере вы найдете его в разделе req.body.data

Комментарии:

1. Все это должно быть { data: json.stringify({shareUrl: props.shareUrl}) } проверено в виде строкиdeveloper.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch