Пустой запрос в ExpressJS - PullRequest
       3

Пустой запрос в ExpressJS

0 голосов
/ 21 декабря 2018

Когда я отправляю данные из Angular в NodeJS, используя http.post, он всегда возвращает мне пустой req.query.Мой server.js:

const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');

const app = express();

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

app.post('/', (req, res) => {
    console.log(req.query);
    res.send(req.query);
});

app.listen(4000, () => {
    console.log('Successfully');
});

Внешний интерфейс:

onSubmit(f: NgForm) {
    let data = f.value;
    let httpOptions = {
        headers: new HttpHeaders().set('Content-Type', 'application/json')
    };
    data = JSON.stringify(data);
    this.http.post('http://localhost:4000/', data, httpOptions).subscribe(data => {
        console.log(data);
    }, error => {
        console.log(error);
    });
}

И он всегда возвращает {} в консоли.Я попытался запустить POST-запросы в POSTMAN, и он там работал правильно.Вот текст http-запроса в браузере: http-запрос в браузере

Надеюсь на вашу помощь, спасибо.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Вы используете req.query, но отправляете данные в теле, а не в качестве параметров запроса.

Попробуйте вместо этого использовать req.body.

0 голосов
/ 21 декабря 2018

Это потому, что req.query содержит строку запроса параметров, похоже, что вы только передаете данные через тело, поэтому вы хотите req.body

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