Это angular часть добавления данных формы
const formData = new FormData();
formData.append('userId', this.myData.userId);
formData.append('file', this.file);
formData.append('action', 'upload');
И я отправляю ее на сервер узла следующим образом.
return this.http.post<any>(`${Server}/uploadPhoto`, formData);
Но я не могу получить значение req.body в сервере узлов я использовал Express. Но req.body
пусто.
Это часть получения узла.
exports.uploadPhoto = async function(req, res) {
try {
console.log(req.body))
res.status(200).send(req.body)
} catch {
res.status(400).send()
}
Возвращаемое значение и значение получения узла - все {}
. Если я не использую formdata, сервер узла работает хорошо. Я могу получить другие значения без формданных.
Я думаю, это из-за опции заголовка angular или опции типа принимаемого узла, но я не уверен.
Это часть заголовка узла
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
res.header('Access-Control-Allow-Origin', 'http://localhost:4200');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Accept-Encoding');