Когда я отправляю данные из 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.info(req.query);
res.send(req.query);
});
app.listen(4000, () => {
console.info('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.info(data);
}, error => {
console.info(error);
});
}
И он всегда возвращает {} в консоли. Я пробовал запускать POST-запросы в POSTMAN, и там все корректно сработало. Вот тело http-запроса в браузере: http-запрос в браузере
Надеюсь на вашу помощь, спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это потому, что req.query содержит параметры Строка запроса, похоже, вы только передаете данные через тело, поэтому вам нужен req.body
экспресс-сообщение получить req.body не определено
Вы используете req.query, но отправляете данные в теле, а не в качестве параметров запроса.
Вместо этого попробуйте использовать req.body.
Как насчет того, чтобы вы напрямую добавляли URL-адрес во внешнем интерфейсе в виде строки запроса?