Невозможно извлечь данные из пост-запроса в узле - PullRequest
0 голосов
/ 27 мая 2019

Я отправляю почтовый запрос, используя axios в ответ на серверную часть nodejs и базу данных mysql.

На стороне сервера, когда я регистрирую req.body, он не определен и это параметры и часть запроса, когда я регистрирую запрос на стороне сервера:

params: {},
query: {},

Это внутри метода handlelogin в реакции:

 handleLogin=(event)=>
    {event.preventDefault();
        let formfields={...this.state.formfields};
        axios.post('http://localhost:7000/api/login',{formfields
        })
        .then(res=>
            {
                    console.log("response receieved");  
                })
        .catch(err=>
        {
            console.log(err);
        });
    };

Это скрипт узла (внутри маршрутов):

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

router.post('/api/login',(req,res,next)=>{
    console.log('Inside login-serverside');
    console.log(req);
});

module.exports = router;

Я хочу отправить формы и файлы pdf (позже), но не могу получить к ним доступ на стороне сервера. Я могу получить доступ к request.parameters, когда делаю запрос get. В чем здесь проблема?

Для чего используются body, params и query соответственно и в чем разница?

1 Ответ

1 голос
/ 28 мая 2019

Я не включил анализатор тела в мой основной файл server.js

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

После включения это работает. Теперь я могу успешно использовать request.body и получить доступ к параметрам, переданным в axios.post.

Хотя я до сих пор не уверен в использовании параметров, запросов, данных и тела соответственно.

...