Невозможно добавить значения из req.body в схему мангуста - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь загрузить небольшое изображение с дополнительными полями, такими как «цена».Кажется, что img хранится в папке назначения, но дополнительные поля не сохраняются вместе с файлом.

Я использую multer и bodyParser.json, чтобы иметь возможность читать поля req.body и req.file.

вот этот пост:

router.route('/pictures/add').post(upload, (req, res) => {


        console.log(req.body.price); //works
        console.log(req.file); //works

    var picture = new Picture({
        name : req.file.originalname,
        price : req.body.price,
        id : req.file.filename
    }); 


    console.log(picture); //logs only the id as in req.file.filename. 
    //name and price are missing

    picture
        .save()
        .then(picture => {
            console.log(picture);
            res.status(201).json({
                picture: 'Added successfully',
                id: picture.id, //id as in req.file.filename
                name: picture.name, //missing
                price: picture.price //missing
            });
        })

вот этот экземпляр multer

const upload = multer({dest: 'pictures/'}).single('img');
app.use(bodyParser.json());

вот схема изображения

import mongoose from 'mongoose';

const Schema = mongoose.Schema;

let Picture = new Schema({
    name: {
        Type: String
    },
    price: {
        Type: String
    }
});

export default mongoose.model('Picture', Picture);

Я ожидалБД для сохранения всех полей примерно так: идентификатор, имя, цена, но, похоже, только идентификатор отправляется и сохраняется в БД.

Я приветствую любую помощь.

1 Ответ

0 голосов
/ 26 апреля 2019

Ответ прост: при определении типа схемы ключевое слово «тип» должно быть прописным, а не прописным.Сервер выдал исключение после того, как я установил значение по умолчанию для поля «имя».

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