Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.03.2022, 21:07
Аспирант
Отправить личное сообщение для Raadsert Посмотреть профиль Найти все сообщения от Raadsert
 
Регистрация: 09.12.2021
Сообщений: 82

Пустой req.body с подключенным bodyParser
Здравствуйте.
У меня возникла проблема когда в req.body не передаётся информация (он банально пустой), при учёте что bodyParser подключен и активен.

Код клиента:
formLogin.onsubmit = async function(e) {
  e.preventDefault();

  const data = {
    name: "foo",
    surname:"boo"
  }

  const options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
  }

  await fetch('/post', options).then((e)=>{
    alert(JSON.stringify(e));
  })
}

Код сервера:
const express = require('express');
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

app.post(/post, (req, res)=>{
 res.json(req.body);
})


Подскажите, в чём может быть проблема?

Последний раз редактировалось Raadsert, 12.03.2022 в 14:50.
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2022, 03:55
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,730

Посмотрите, какие типы данных поддерживает опция init.body (тут learn.javascript.ru или тут MDN) и что вы туда передаете.

Сообщение от developer.mozilla.org/en-US/docs/Web/API/fetch
Any body that you want to add to your request: this can be a Blob, BufferSource, FormData, URLSearchParams, USVString, or ReadableStream object.
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2022, 10:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Raadsert
body: data
Пробуй так
body: JSON.stringify(data)
Ответить с цитированием
  #4 (permalink)  
Старый 12.03.2022, 14:51
Аспирант
Отправить личное сообщение для Raadsert Посмотреть профиль Найти все сообщения от Raadsert
 
Регистрация: 09.12.2021
Сообщений: 82

Сообщение от Nexus Посмотреть сообщение
Посмотрите, какие типы данных поддерживает опция init.body (тут learn.javascript.ru или тут MDN) и что вы туда передаете.
Извиняюсь, исправил. Именно так не работает, результат тот же.
Ответить с цитированием
  #5 (permalink)  
Старый 12.03.2022, 14:53
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,707

Тоже самое и с ответом

.then((e)=>{
    alert(JSON.stringify(e));
  })


e - это объект Response. Что бы получить из него данные, нужно использовать соответствующие методы:
e.text()
e.json()
e.blob()

https://developer.mozilla.org/ru/docs/Web/API/Response
Ответить с цитированием
  #6 (permalink)  
Старый 12.03.2022, 15:32
Аспирант
Отправить личное сообщение для Raadsert Посмотреть профиль Найти все сообщения от Raadsert
 
Регистрация: 09.12.2021
Сообщений: 82

Сообщение от voraa Посмотреть сообщение
Тоже самое и с ответом

.then((e)=>{
    alert(JSON.stringify(e));
  })


e - это объект Response. Что бы получить из него данные, нужно использовать соответствующие методы:
e.text()
e.json()
e.blob()

https://developer.mozilla.org/ru/docs/Web/API/Response
Понял, я тупой. На всякий случай, может кому потом пригодиться и кто-то так же как я тупить будет... Вот так будет работать:

const res = await fetch('/post', options)
alert(await res.text())
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax-запрос выводит пустой alert FaNaT_96 AJAX и COMET 1 20.04.2016 11:07
Криво отображается caption в пустой таблице javascript_pupil (X)HTML/CSS 2 18.11.2015 18:06
Пустой file input суссесфул или не successful? kostyanet Элементы интерфейса 1 08.01.2015 17:56