Почему я не могу обновить объект в мангусте, когда было предпринято новое действие? - PullRequest
0 голосов
/ 24 мая 2019

Итак, в основном у меня есть этот метод, который загружает изображение, используя mulder, затем отправляет ответ и создает для него копию.

Идея состоит в том, чтобы иметь возможность обновлять мою запись в базе данных, используя метод обновления.

Вот схема:

const pictureSchema = new mongoose.Schema({
    title: {type: String, maxlength: [50, 'Title must be longer than 50 characters']},
    description: {type: String},
    filename: {type: String},
    thumbname:{type: String},
    thumbswitch:{type: Boolean, default: false},
    user: {type: mongoose.Schema.Types.ObjectId}
});

var picture = mongoose.model('Picture', pictureSchema);

exports.picture = picture;

А вот фактический метод:

pics.post('/upload', (req, res) => {
    upload.single('image')(req, res, (err) => {
      if(err){
        return res.status(500).json({ message: err });
      } else {
        if(req.file == undefined){
            return res.status(500).json({ message: 'upload a valid file!' });
        } else {
          let pic = new picture({
            title: req.body.title,
            description: req.body.description,
            filename: req.body.databasepicname,
            user: mongoose.Types.ObjectId(req.user._id)
          });
          pic.save()
          .then(() => res.status(201).json({ message: pic }))
          .then(() => gm(path.resolve('./storage/media/' + req.body.databasepicname))      //// TODO: establish correct routes, 
          .resize(120, null)
            .write(path.resolve('./storage/media/thumb' + '-' + req.body.databasepicname), function (err) {
              if (!err) {
                console.log('thumbnail created successfully')

                //THE PROBLEM IS HERE. HOW DO I UPDATE THE pic object?
                pic.update($set{thumbname: 'thumb' + '-' + req.body.databasepicname,
                            thumbswitch: true})
                pic.save().then(() => console.log(pic))
                }
              else{console.log(err)}
            })
          )
          };
        }
      });
  });

Вот вывод, который я получаю, регистрируя изображение после попытки изменить объект.

{ thumbswitch: false,
  _id: 5ce85e820f08d96713c6dc73,
  title: 'botty',
  description: 'lorem ipsum blah',
  filename: 'image-1558732418894.jpg',
  user: 5ce85e820f08d96713c6dc72,
  __v: 0 }

Вот вывод, на который я надеюсь:

{ thumbswitch: true,
  _id: 5ce85e820f08d96713c6dc73,
  title: 'botty',
  description: 'lorem ipsum blah',
  filename: 'image-1558732418894.jpg',
  thumbname: 'thumb-image-1558732418894.jpg',
  user: 5ce85e820f08d96713c6dc72,
  __v: 0 }

Вся помощь очень ценится. Большое спасибо

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