Я пытаюсь установить предел количества изображений. Дело в том, что я уже установил его в Mongoose, но поскольку изображения загружаются в облако, я думаю, что что-то должно быть добавлено перед загрузкой, и сначала проверьте, не меньше ли длина массива изображений, чем 4. Вот код .
Mongoose
const userSchema = new mongoose.Schema({
username: { type: String },
email: { type: String },
isVerified: { type: Boolean, default: false },
picVersion: { type: String, default: '1531305955' },
picId: { type: String, default: 'default.png' },
images: {
type:[{
imgId: { type: String, default: '' },
imgVersion: { type: String, default: '' }
}],
validate: [arrayLimit, 'You can upload only 4 images']
},
city: { type: String, default: '' },
});
function arrayLimit(val) {
return val.length <= 4;
}
контроллер
UploadImage(req, res) {
// check if images array length is <== 4 and then let bellow function
cloudinary.uploader.upload(req.body.image, async result => {
await User.update(
{
_id: req.user._id
},
{
$push: {
images: {
imgId: result.public_id,
imgVersion: result.version
}
}
}
)
.then(() =>
res
.status(HttpStatus.OK)
.json({ message: 'Image uploaded successfully' })
)
.catch(err =>
res
.status(HttpStatus.INTERNAL_SERVER_ERROR)
.json({ message: 'Error uploading image' })
);
});
},
Что я должен добавить до cloudinary.uploader.upload(req.body.image, async result => {
для проверки сначала?