Поставить запрос возвращает исходные данные - PullRequest
0 голосов
/ 05 ноября 2018

Привет, я действительно новичок в бэкэнде Javascript. Я был бы признателен за помощь здесь. У меня есть следующая модель

const mongoose = require('mongoose');
*const Schema = mongoose.Schema;

// Create to store user favs
const FavsSchema = new Schema({
  userName: {
    type: Schema.Types.ObjectId,
    ref: 'users',
  },
  programId : { type : Array, default: [] }
});

module.exports = UserFavs = `mongoose.model('favorites', FavsSchema);*`

Я пытаюсь сделать запрос пут, используя следующий код

/* PUT /userName/:id */
  router.put('/postData/:user_id', function (req, res, next) {
      UserFavs.findByIdAndUpdate(req.params.user_id, req.body, {new: true}).then(function(){
        console.log('is it valid')
        console.log(mongoose.Types.ObjectId.isValid(req.params.user_id))
          UserFavs.findOne({userName: req.params.user_id}).then(function(userfav){
            console.log(userfav)
          res.send(userfav)
        })
      })
    })

Я вызываю API на входной интерфейс реакции, где пользователь выбирает данные из сетки данных и нажимает кнопку, чтобы сохранить свои любимые программы

buttonTest2(dataArray2, userId) {
    axios.put('/api/favorites/postData/userId', this.dataArray2)
    .then(response => {
      console.log('put response', response.data)
    })
    .catch(function (error) {
      console.log('error is ', error);
    })
}

Я просто возвращаю исходные данные. Я не понимаю, почему это происходит. Была бы признательна за помощь

1 Ответ

0 голосов
/ 05 ноября 2018
/* PUT /updateData/:id */
    router.put('/updateData/:user_id', 
      passport.authenticate('jwt', { session: false }),
      function (req, res) {
        let id = req.params.user_id;
        let update = req.body;
        UserFavs.findByIdAndUpdate(id, {programId: update}, {new: true}, function(err, userfav) {
          if(err) {
            res.send(err);
          } else {
            res.json(userfav);
          }
      });
    });

Необходимо прочитать в документации. Вы должны привязать req.body к свойству модели programId

...