Я пытаюсь настроить NodeJS Express JSON REST API в первый раз, но сталкиваюсь с некоторыми проблемами при попытке получить данные JSON, поступающие из запросов (как GET, так и POST-запросы)
Вот код:
var bodyParser = require("body-parser");
const express = require("express");
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.get("/prova", (req, res)=>{
console.info(req.headers["content-type"]);
console.info(req.body);
res.status(200).json(req.body);
});
Вот console.info(); При попытке сделать запрос с Postman с некоторыми параметрами:
application/json
{}
А вот подробности запроса почтальона
Не должно быть тела с запросом GET, поэтому req.body
должно быть пустым. Используйте POST или PUT, если вы хотите отправить данные в теле запроса.
Вы правы, ребята, я пытался вставить параметры в почтовый запрос, оставляя тело пустым, и даже при попытке GET-запроса я проверил тело (оно все еще было пустым).
Вам следует избегать отправки body
методами HTTP GET в соответствии с Веб-документы MDN. Что касается показанного метода GET, эта строка res.status(200).json(req.body);
дает вам пустой объект, измените его, например, на res.status(200).json({message:"Hello world!"});
, чтобы увидеть сообщение. Для метода POST вы можете получить доступ к body
так же, как и к req.body
.
Большое спасибо, я вставил данные JSON в тело POST-запроса Postman. Для запросов GET вместо этого данные должны передаваться через строку запроса с использованием res.param.xxxx (где xxxx — ключ параметра)
Похоже, ваше тело пусто в Почтальоне. Вы пробовали вводить туда какие-то данные?