node - Sequelize多对多模型建好后怎么查询?

查看:150
本文介绍了node - Sequelize多对多模型建好后怎么查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

user表:

module.exports = function(sequelize, DataTypes) {
    return sequelize.define('user', {
        id: {
            type: DataTypes.INTEGER(12),
            allowNull: false,
            primaryKey: true,
            autoIncrement: true,
            unique : true
        },
        username: {
            type: DataTypes.STRING,
            allowNull: true
        }
    }, {
        timestamps: true,
        underscored: true,
        tableName: 'user',
        freezeTableName: true,
        paranoid: true
    });
};

bbs表:

module.exports = function(sequelize, DataTypes) {
    return sequelize.define('bbs', {
        id: {
            type: DataTypes.INTEGER(12),
            allowNull: false,
            primaryKey: true,
            autoIncrement: true,
            unique : true
        },
        name: {
            type: DataTypes.STRING,
            allowNull: true
        }
    }, {
        timestamps: true,
        underscored: true,
        tableName: 'bbs',
        timestamps: false,
        freezeTableName: true,
        paranoid: true
    });
};

建立关系:

db.user.belongsToMany(db.bbs, {through: 'userbbs', as:'userbbs'});
db.bbs.belongsToMany(db.user, {through: 'userbbs', as:'userbbs'});

生成表bbs,user,userbbs

userbbs结构:

userid,bbsid,update_at,create_at

执行以下语句成功,三表都插入相应数据:

Promise.all([
     db.user.create({username:'itbilu'}),
     db.bbs.create({name:'越秀'})
])
     .then(function(results){
            var user = results[0];
            var bbs= results[1];
            user.setUserBbs(bbs);
            res.json(results);
     })

但是到了查询,我想查询所有用户的信息和所在社区信息时就不知道怎么取了,看了网上多种方案都不行:

第一

db.user.findAll().then(function(user){
    user.getBbs();
    res.json(user);
})

user.getBbs is not a function。
然后试了user.getUserBbs();也不行

第二种,看的官方文档:

db.user.findAll({include:[{model:db.bbs]}).then(function(user){
    res.json(user);
})

报: bbs is not associated to user!

求到底应该怎么查啊?哭死

解决方案

解决了,自己的问题

这篇关于node - Sequelize多对多模型建好后怎么查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆