首页 > 解决方案 > 如何在 sequelize 对象上创建一个方法,以检查是否创建了另一个与之关联的对象?

问题描述

对不起,我的标题可能令人困惑。

所以我有三个我用 javascript 中的 sequelize 创建的对象。相互关联的用户、帖子和投票。我想在 Post 模型上创建一个方法来检查当前登录的用户是否对这个特定的帖子进行了投票。我正在使用 Passport 模块进行用户登录/注销。

标签: javascriptsequelize.js

解决方案


var Votes = db.sequelize.define('votes',{
    post_id:{
        type: db.Sequelize.INTEGER,
        allowNull: false,
        unique:"voted_user"
    },
    user_id:{
        type: db.Sequelize.INTEGER,
        allowNull: false,
        unique:"voted_user"
    }
},{
    underscored: true
});

为此,您可以使用 的概念composite key,通过定义unique:"voted_user",当我们尝试输入相同的组合时,这将引发错误,

model.Votes.create({ post_id : 1 , user_id : 2 }).then(data => {
    // Success
}).catch(err => {
    // Error
})

推荐阅读