Почтальон отправляет странный ответ для необработанного сообщения JSON (узел js) - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь выполнить POST-запрос, используя raw json.

На вкладке Body я выделил «raw» с этим телом:

{
"name": "book"
}

На стороне js узлаЯ делаю res.send (JSON.stringify (req.body))

router.post('/', (req, res, next) => {
  res.send(JSON.stringify(req.body));
}

И в ответе POSTMAN я получаю:

{"{\n\"name\": \"book\"\n}":""}

Когда ожидается что-то вроде

{"name":"book"}

Понятия не имею - где может быть причина для этого?

Ответы [ 3 ]

1 голос
/ 23 сентября 2019

Вам потребуется использовать анализатор тела Express JSON, установить с помощью

npm install body-parser; 

Затем:

const bodyParser = require('body-parser');
app.use(bodyParser.json());

После того, как вы это сделаете, данные JSON будут проанализированы правильно икогда вы отправляете его обратно, он будет отображаться правильно.

Также убедитесь, что в вашем запросе почтальона для заголовка Content-Type установлено значение «application / json» (перейдите в «Headers» и добавьте новый «Content-»).Введите "header with value" application / json ")

Вот простое экспресс-приложение, которое будет отображать любой JSON POST:

const express = require("express");
const port = 3000;
const app = express();
const bodyParser = require('body-parser')

app.use(bodyParser.json());

app.post('/', (req, res, next) => {
    console.log("Body: ", req.body);
    res.send(JSON.stringify(req.body));
})

app.listen(port);
console.log(`Serving at http://localhost:${port}`);
0 голосов
/ 23 сентября 2019

попробуйте с жестко закодированным ответом json, а затем с динамической переменной

res.json({"name":"book"});
0 голосов
/ 23 сентября 2019

Похоже, это не ошибка Почтальона, но ваша служба NodeJS применяет JSON.stringify дважды?

Можете ли вы записать тип ответа с сервера на консоль, чтобы проверить, является ли это уже содержимым json илинет?

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