小编The*_*iwi的帖子

Sequelize 非主键上的连接表

我的代码:

User.hasMany(UserMail, {foreignKey:'to_user_id', sourceKey:'id'});
User.hasMany(UserMail, {foreignKey:'from_user_id', sourceKey:'id'});

UserMail.belongsTo(User, {foreignKey: 'from_user_id'})
UserMail.belongsTo(User, {foreignKey: 'to_user_id'})

function getUserMail(req,res){
    // Authenticate
    jwt.verify(req.headers.jwt, process.env.JWT_KEY,function(err,decoded) {
        if (err) {
            return res.status(401).send("Invalid token");
        }
        let id = decoded.id;

        return UserMail.findAll({
            where: {
                to_user_id: id,
                to_user_deleted: false
            },
            include:{
              model: User,


              //This is where the error is
              on:{
                  id: Sequelize.where(Sequelize.col("User.id"), "=",Sequelize.col("UserMail.from_user_id"))
              },


                attributes:['username']
            },
            // attributes:[], // TODO Set what columns are needed
            order:[['id', 'DESC']]
        }).then(mail=> {
            return res.status(200).send(mail);
        })

    })
}
Run Code Online (Sandbox Code Playgroud)

当我使用它时,我得到“未处理的拒绝 SequelizeDatabaseError:缺少表“用户”的 FROM 子句条目”,我不确定这意味着什么。

我试过使用

where:{ …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sequelize.js typescript angular

2
推荐指数
1
解决办法
3624
查看次数

标签 统计

angular ×1

sequelize.js ×1

sql ×1

sql-server ×1

typescript ×1