получить angular значение данных формы в узле пусто - PullRequest
0 голосов
/ 31 марта 2020

Это 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');

1 Ответ

0 голосов
/ 31 марта 2020

Для загрузки файла с данными формы вы можете попробовать эту библиотеку в своем express API, внутри есть много примеров того, как реализовать это промежуточное ПО.

https://github.com/expressjs/multer

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