SequelizeDatabaseError: столбец "" не существует - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь разрешить пользователю понравиться сообщение, я получаю эту ошибку

Необработанный отказ SequelizeDatabaseError: столбец "UserId" не есть

Я знаю, что UserId Существует ли , потому что его пользователь уже находится в базе данных, подобной этой.

enter image description here

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

модель / тип

'use strict';
module.exports = function(sequelize, DataTypes) {
  const Like = sequelize.define('Likes', {
    like:{
      type:DataTypes.BOOLEAN,
      allowNull:true
    }
  }, {});
    Like.associate = function(models) {

        Like.belongsTo(models.User, {
          onDelete: "CASCADE",
          foreignKey: {
            foreignKey: 'userId'
          }
        })

        Like.belongsTo(models.Post, {
          onDelete: "CASCADE",
          foreignKey: {
            foreignKey: 'likeId'
          }
        })

    }


  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' });
    Post.hasMany(models.Likes, {  foreignKey: 'likeId',  targetKey: 'id' });
  };
  return Post;
};

модель / пользователя

'use strict';

const User = (sequelize, DataTypes) => {
  const myUser = sequelize.define('User', {
    username: DataTypes.STRING,
    email: DataTypes.STRING,
    password: DataTypes.STRING,
    resetPasswordToken:DataTypes.STRING,
    resetPasswordExpires: DataTypes.DATE
  }, {});

  myUser.associate = function(models) {

    myUser.hasMany(models.Post, { foreignKey: 'userId', as:'users' });
    myUser.hasMany(models.Likes, { foreignKey: 'userId', as:'likes' });
  };

  return myUser;
};

module.exports = User;

маршруты / сообщений

router.post('/like/:id', (req, res)=> {
    models.Post.findOne({
      where:{
          id: req.params.id
      }
    }).then( (like) => {
        if(like){
            models.Likes.findOrCreate({
                where:{
                    postId: req.params.id
                },
                defaults:{
                    like:true
                }
            }).then( (result) => {
                res.status(200).send({
                    message: 'You have like this post',
                    like: result
                })
            })
        }
    }).catch( (err) => {
        res.status(401).send({
            message: "Something went wrong",
            err: err
        })
    })

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