Я пытаюсь добавить имя человека и его / ее изображение в mongodb, используя экспресс-узел js, и раньше я пытался добавить только тексты в mongodb или только изображение в mongodb, и они отлично работают, но когда я пытаюсь смешать тексти файл в запросе на сохранение сообщения Я запутался, так что это код маршрута в личном файле:
router.post('/add', (req, res) => {
const validating = personValidating(req.body);
if (validating.error) {
res.status(400).send(validating.error.details);
} else {
fileName = uuidv1(); // this to generate random name for image that I uploaded
const person = new Person({
_id: new mongoose.Types.ObjectId(),
image: req.file.image,
name: req.body.name
});
const v = person.validateSync();
if (v)
res.status(400).send('There is somthing wrong');
person.save()
.then(result => {
res.send('You have added a new person');
console.log(result);
})
.catch(err => {
res.status(401).send(err);
console.log(err);
});
}
});
, и я создаю простой код, который одновременно сохраняет изображение в папку на сервере:
image.mv(`./public/${fileName}.png`, function(err) {
if (err)
return res.status(500).send(err);
res.send('File uploaded!');
});
но как объединить сохранение самого изображения в папке и путь к этому изображению в mongodb с именем человека
, а также функция проверки:
function personValidating(book) {
const personSchema = {
'image': Joi.string().required(),
'name': Joi.string().required()
}
return Joi.validate(person, personSchema);
}
и это схема базы данных в файле модели персонажа:
const mongoose = require('mongoose');
const personSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
image: {
type: String,
required: [true, 'Image Is Required']
},
name: {
type: String,
required: [true, 'Name Is Required']
},
});
module.exports = mongoose.model('Person', personSchema);