Тело ответа почтальона пусто при использовании 'form-data' - PullRequest
0 голосов
/ 27 февраля 2019

Я начал работать над моим новым API узла через некоторое время, и внезапно тестирование данных с использованием Postman 'form-data' перестало работать.Данные сохраняются в базе данных с кодом состояния 200, но тело запроса (заголовок и категория) отображается пустым.Я попытался использовать сырое тело и работает отлично, но мне нужно использовать данные формы для отправки файлов в теле.

Вот мой app.js фрагмент:

app.use(morgan('dev'));
app.use(bodyParser.json());


app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.setHeader(
        'Access-Control-Allow-Headers',
        'Origin, X-Requested-With, Content-Type, application/json, Accept, Authorization'
    );
    if(req.method === 'OPTIONS') {
        res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, PATCH');
        return res.status(200).json();
    }
    next();
});

app.use('/articles', articleRoutes);

app.use((req, res, next) => {
    const error = new Error('Not found');
    error.status = 404;
    next(error);
});

модель:

const mongoose = require('mongoose');

const articleSchema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    title: String,
    category: String,
    date: {type: Date, default: Date.now},
})

module.exports = mongoose.model('article', articleSchema);

Articleroute.js

const express = require('express');
const router = express.Router();

const articleController = require('../controllers/articles');
router.get('/', articleController.article_get_all);
router.post('/', articleController.article_create);
module.exports = router;

article_create

exports.article_create = (req, res, next) => {

    const body = req.body;

    body._id = mongoose.Types.ObjectId();

    const article = new Article(body);
    article
        .save()
        .then(docs => {
            console.log(docs, 'article');
            res.status(200).json(docs);
        })
        .catch(err => {
            console.log(err);
            res.status(500).json({
                error: err
            });
        });
};

Я попытался переустановить модуль body-parser, но все тщетно.

скриншот почтальона

Вот результат почтальона использования данных формы:

{
    "_id": "5c76d1c01c20fa064cbcbaf1",
    "date": "2019-02-27T18:06:56.287Z",
    "__v": 0
}
...