Почему я не получил значения при отправке в app.post url в формате json? - PullRequest
0 голосов
/ 03 апреля 2020

когда я пытаюсь добавить данные в массив с помощью api и json с помощью express метода app.post, я получаю пустые значения, добавленные в мой массив . Я много раз проверял код и пытался добавлять значения напрямую вместо req.body метода, и он работает. но когда я использую req.body, он не возвращает никаких значений из Json, которые я разместил на URL .

Вот мой код страницы индекса

const express = require('express');
const app = express();
const http = require('http');
const port = process.env.PORT || 9000;
var bodyParser = require('body-parser');

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

const person = [
    { id: 1, name: 'name1' },
    { id: 2, name: 'name2' },
    { id: 3, name: 'name2' }
];

app.get('/', (req, res) => {
    res.send('hello');
});
app.get('/api/person', (req, res) => {
    res.send(person)
});

app.post('/api/person', (req, res) => {

    const per = {
        id: req.body.id,
        name: req.body.name
    };
    person.push(per);
});

/*app.post();
app.put();
app.delete();*/


app.listen(port, () => {
    console.log(`connecting on  ${port}`);
})

Я отправляю данные из инструмента почтальона

вот так

{
"id":44,
"name":"name44"
}

и на выходе я получил этот результат

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

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020
router.post('/api/person', (req, res) => {
    const per = {
        id: req.body.id,
        name: req.body.name
    }
    person.push(per)
    return res.json({ person })
})
0 голосов
/ 03 апреля 2020

В Почтальоне, где вы вводите необработанное тело, убедитесь, что оно установлено на Json, а не Текст. Таким образом, при отправке будет добавлен заголовок Content-Type: application / json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...