Я пытаюсь загрузить небольшое изображение с дополнительными полями, такими как «цена».Кажется, что 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);
Я ожидалБД для сохранения всех полей примерно так: идентификатор, имя, цена, но, похоже, только идентификатор отправляется и сохраняется в БД.
Я приветствую любую помощь.