Ниже приведен код для публикации продукта с использованием службы angular. Здесь я передаю продукт как тело
addProduct(product): Observable<any> {
return this.http.post<Observable<any>>(
`http://localhost:4401/api/products`,
{
product,
}
);
}
Но когда я пытаюсь получить к нему доступ внутри моего экспресс-сервера, я получаю неопределенное.
app.post("/api/products", async (req, res) => {
console.info("req :", req.body);
});
Другие глаголы, такие как GET
, DELETE
, работают нормально.
Также нормально работает следующее:
app.get("/api/products/:id", async (req, res) => {
try {
const responseData = await db.get(req.query.id);
res.json({ product: responseData });
} catch (e) {
console.info(e);
}
});
Но параметры внутри глагола POST
не получаются внутри экспресс-сервера.
На самом деле парсер тела устарел. Я использую мультер. Есть ли альтернатива?
Для парсинга json-полезной нагрузки вам нужен соответствующий синтаксический анализатор. Для этого вы можете использовать встроенный парсер экспресса:
const express = require('express');
const app = express();
app.use(express.json());
app.post("/api/products", async (req, res) => {
console.info("req :", req.body);
});
Рад помочь, пожалуйста, не забудьте проголосовать / принять мой ответ, нажав на галочку слева.
Отвечает ли это на ваш вопрос? req.body пустой на постах