req.body не вернет ответ - PullRequest
       8

req.body не вернет ответ

0 голосов
/ 30 января 2019

Я искал и пробовал другие результаты, но, похоже, ни один из них не дал результатов.

Я пытаюсь отправить данные на сервер, используя почтальон в качестве теста.Ответ отправляет сообщение «success», но req.body возвращает пустой массив каждый раз, когда я пытаюсь.Я использую серверную часть с экспрессом и пытаюсь использовать маршруты.Я имел успех раньше, но по какой-то причине я не могу получить его на этот раз, и мой старый код, кажется, не работает для этого.Если я просто регистрирую req, а не req.body, я вижу, что тело пусто, параметры пусты, но URL включает в себя параметры.Я могу опубликовать его, но это довольно долго, и я не знаю, полезно ли это.

Вот URL, который я пытаюсь нажать: localhost:3000/?testParam=test&test=boop

app.js

const express = require('express');
const app = express();

const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/blogTest', { useNewUrlParser: true });
mongoose.Promise = global.Promise;

const postsRoute = require('./routes/post');
app.use(postsRoute);

module.exports = app;

post.js

const express = require('express');
const router = express.Router();
const postModel = require('../models/post'); //not using this yet

router.get("/", function(req, res){
    console.log("Getting Posts...");
    postModel.find({}, function(err, posts){
        if(err){
            res.send("{'status': 'error', 'response': "+err+"}");
        }
        else if(posts.length < 1){
            res.send("{'status': 'null', 'response': {}}");
        }
        else{
            res.send("{'status': 'success', 'response': "+posts+"}");
        }
    });
});
router.post("/", function(req, res){
    console.log(req.body);
    res.send('success');
});
module.exports = router;

Я ожидаю, что консоль также запишет {'testParam': 'test','test':'boop'}, я попытался разобрать req.body как json и привести его в соответствие, но это вызывает серверврезаться.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

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

router.post("/", function(req, res){
    console.log(req.params);
    res.send('success');
});
0 голосов
/ 30 января 2019

Я думаю, вы не понимаете методы http и их работу.

req.body - это тело запроса POST, это данные, передаваемые клиентом, когда он отправляет запрос POST на вашу конечную точку API.Если вы не отправляете никаких данных в своем запросе POST, то req.body будет пустым.

В вашем примере, чтобы получить данные из запроса, например localhost:3000/?testParam=test&test=boop, вам нужно будет посмотреть в req.paramsвместо req.body.

...