Тело пусто во время метода POST к контроллеру сервера - PullRequest
0 голосов
/ 30 августа 2018

Я запрашиваю ответ отправки от моего клиента, содержащий объект, но на моем бэкэнде, когда я console.log (req.body), сервер показывает, что это пустой объект ..

Это в значительной степени копия вставки из примера, который я делал в прошлом, отправка и запрос объекта для публикации в БД.

Вот что у меня есть:

это в 'api.js'

var postBaseNums = data => {
    console.log(data)
    fetch('/getnums', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    })
    .then(res => res.send())
}

'data' - это объект, который я хочу отправить, и здесь я console.log (data), чтобы убедиться, что он не пустой или что-то, что не является.

Это отправляется на маршрут my / getnums, который отправляет его методу post моего бэкэнда:

postNums: (req, res, next) => {
    console.log(req.body)
    numSchem.create({
        num: req.body
    })
    .then(data => res.status(201).json(data))
    .catch(e => {
        req.error = e
        console.log(e)
        next()
    })
}

Здесь console.log (req.body) отображается в терминале '{}'

Я пытался изменить тело на просто тело: данные, а не их упорядочение, тоже самое.

После просмотра моей схемы mongoose теперь я получаю эту ошибку:

numSchema validation failed: field1: Cast to String failed 
for value "{}" at path "field1"

, что имеет смысл, потому что тело - это пустой объект .. хотя я чувствую, что это должна быть строка, потому что в api.js у меня есть: body: JSON.stringify (data)

Так что я тут не так делаю?

1 Ответ

0 голосов
/ 30 августа 2018

Предполагается, что вы используете express в качестве сервера или что-то подобное

Установить парсер тела

npm install --save body-parser

Добавить промежуточное ПО

//Add this where you initialize the server app
var bodyParser = require('body-parser')
app.use( bodyParser.json() )


//Your req.body is now parsed
postNums: (req, res, next) => {
    console.log(req.body)
    //...stuff
}
...