Проблема с запросом данных формы с node.JS - PullRequest
0 голосов
/ 26 марта 2020

Доброе утро. Я постараюсь объяснить мои проблемы. Поэтому я должен создать обратную сторону веб-сайта и не могу получить информацию о запросе данных формы. Запрос содержит объект и изображение, но когда я делаю console.log(req.body.key), я получаю замечательный undefined . Ниже приведен исходный код приложения. Передняя часть создается с помощью Angular, а задняя часть - с помощью Node.JS

Back-end: + приложение. js

const express = require("express") ,
    app = express () ,
    moongoose = require("mongoose") ,
    bodyParser = require("body-parser") , 
    path = require("path") ,
    userRoute = require("./routage/user") , 
    sauceRoute = require("./routage/sauces") ;


moongoose.connect("mongodb://localhost/Pekito" , {
    useNewUrlParser: true , 
    useUnifiedTopology: true
})
.then(() => {console.log("Connecte a mongo")})
.catch((error) => {console.log(error)}) ; 

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

app.use("/api/auth/" , userRoute) ; 
app.use("/api/sauces/" , sauceRoute) ;

module.exports = app ; 

+ маршруты

exports.createSauces = (req , res , next) => { 
    console.log(req.body.sauce) ; => undefined
}

front-end:

createSauce(sauce: Sauce, image: File) {
    return new Promise((resolve, reject) => {
      const formData = new FormData();
      formData.append('sauce', JSON.stringify(sauce));
      formData.append('image', image);
      this.http.post('http://localhost:3000/api/sauces', formData).subscribe(
        (response: { message: string }) => {
          resolve(response);
        },
        (error) => {
          reject(error);
        }
      );
    });
  }

Так что если вы можете объяснить мне мою ошибку, я буду вам очень благодарен

NB: извините за мой английский sh, я французский студент)

1 Ответ

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

FormData объекты отправляют многочастные запросы.

У вас есть парсеры тела для запросов в кодировке URL и JSON.

Вам необходимо добавить парсер тела способный обрабатывать составные части природа. Для многочастных кузовов вас могут заинтересовать следующие модули:

  • busboy и connect-busboy
  • multiparty и connect-multiparty
  • грозный
  • multer

Выберите один из этих модулей и следуйте его инструкциям.

...