Почему я получаю пустой запрос?

Использую в своих проектах на стороне клиента vue.js, а сервера - node+express

Код POST-запроса выглядит так:

const bodyParser = require('body-parser');
const {Router} = require('express');
const router = Router();


let jsonParser = bodyParser.json();

router.post('/', jsonParser,(req, res) => {
    console.log(req.body);
    res.json('Hi')
});

module.exports = router;

Используя POSTMAN или rested запрос приходит успешно, req.body отображается корректно. Однако, если отправляю запрос со стороны своего клиента получаю в ответ пустое тело.

addCar: async function (titleOfCar) {
                if (titleOfCar.length === 0) {
                    alert('Введите, пожалуйста, модель автомобиля');
                } else {
                    try {
                        await fetch(this.url, {
                            method: 'POST',
                            mode: 'no-cors',
                            body: JSON.stringify(new Car(this.adminCars.length + 1, titleOfCar, [new Work('', 0)])),
                            headers: {"Content-Type": "application/json"}
                        })
                            .then(res => {
                                res.json();
                            })
                            .then(data => {
                                this.selectedCar = data
                            })
                    } catch (e) {
                        console.error('Ошибка:', e.message);
                    }
                    await this.load();
                }
            }

В чем может быть моя ошибка?


Ответы (2 шт):

Автор решения: Aziz Umarov

Измените

  .then(res => {
                  res.json();
       })

На

       .then(res => {
                  return res.json();
       })

Либо на

    .then(res => res.json())
→ Ссылка
Автор решения: Павел Петров

У данной ситуации причиной послужило то, что на стороне клиента запросы отправлялись с установленным mode: 'no-cors'. Данный кусочек был удален, на стороне сервера установил пакет cors, который устраняет проблему с CORS policy. Настраивал middleware согласно документации: https://expressjs.com/en/resources/middleware/cors.html

→ Ссылка