Как перехватить FormData для пост-запроса, используя Node / Multer - PullRequest
0 голосов
/ 06 января 2019

Мне нужно сохранить formData в схеме mongodb, используя nodejs + выражать как backend и multer как middleware, эти formData состоят из строки и большого двоичного объекта

Мне нужно захватить BLOB-объект и строку и каким-то образом сохранить на БД, но сейчас я не могу даже захватить на моем бэкэнде

добавляются данные формы

мои req.body и мои req.files отображаются как неопределенные

заранее спасибо

Почтовая служба на угловой

addPost(message, blob): Observable<any> {
    var fd = new FormData();

    fd.append('id', message);
    fd.append('invoiceFile', blob);

    let httpHeaders = new HttpHeaders({
      Accept: 'multipart/form-data'
    });

    let options = {
      headers: httpHeaders
    };

    return this.http.post(`${addPost}`, fd, options);
  }

Мой узел server.js

  const express = require('express');
  const mongoose = require('mongoose');
  const cookieParser = require('cookie-parser');
  // const morgan = require('morgan');
  const app = express();
  const cors = require('cors');
  var fs = require('fs');

  const dbConfig = require('./config/env');

  app.options('*', cors());
  app.use(cors({ credentials: true, origin: true }));

   app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Credentials', 'true');
  res.header('Access-Control-Allow-Methods', 'GET', 'POST', 'DELETE', 'PUT');
  res.header(
    'Access-Control-Allow-Headers',
    'Origin, X-Requested-With, Content-Type, Accept'
  );
  next();
});

   app.use(express.json({ limit: '50mb' }));
   app.use(express.urlencoded({ extended: true, limit: '50mb' }));

   app.use(logger('dev'));

   mongoose.Promise = global.Promise;
   mongoose.connect(
  dbConfig.url,
  { useNewUrlParser: true }
);

  const auth = require('./routes/authRoutes');
  const posts = require('./routes/postRoutes');
  app.use(cookieParser());
  app.use(auth);
  app.use(posts);

 app.listen(3000, () => {
     console.log('Runnning on port 3000');
});

Мой маршрут

router.post('/api/post/add-post', upload.any(), function(req, res) {

  console.log(req.body); // appear as undefined
  console.log(req.file); // appear as undefined
  res.status(204).end();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...