sequelize onDelete не удаляет как при переключении - PullRequest
0 голосов
/ 21 апреля 2019

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

У меня настроено onDelete для моей модели.

module.exports = function(sequelize, DataTypes) {
  const Like = sequelize.define('Likes', {
    like:{
      type:DataTypes.BOOLEAN,
      allowNull:true
    },
  }, {});
    Like.associate = function(models) {
      // foreign key will attach a userId to the likes table
        Like.belongsTo(models.User, {
          onDelete: 'CASCADE',
          foreignKey: 'userId',
          targetKey: 'id' 

        })

        Like.belongsTo(models.Post, {
          onDelete: 'CASCADE',
          foreignKey: 'postId',
          targetKey: 'id' 


        })
    }
  return Like;
}

Пост-модель

module.exports = (sequelize, DataTypes) => {
  const Post = sequelize.define('Post', {
    title: DataTypes.STRING,
    post_content: DataTypes.STRING,
    username:  DataTypes.STRING
  }, {});
  Post.associate = function(models) {
    Post.belongsTo(models.User, {  foreignKey: 'userId',  targetKey: 'id' });
    // foreign key id will attach a postId to the likes table. 
    Post.hasMany(models.Likes, {  foreignKey: 'postId', targetKey: 'id',  onDelete: 'CASCADE' });
  };
  return Post;
};

routs / posts.js

router.post('/like', (req, res)=> {

    models.Likes.create({
        postId: req.body.postId,
        userId:  req.user.id,
        like:true
    }).then( () => {
        res.status(200).send({
            message: 'You have like this post',
        });
    }).catch( (err) => {
        res.status(401).send({
            message: "Something went wrong",
            err: err
        })
    })

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