如何在Sequelize查询上合并包含的模型属性

时间:2018-07-03 03:36:40

标签: javascript sequelize.js sequelize-cli

有人知道如何在Sequelize中执行查询吗(其中没有SQL双关语),将包含的模型属性合并到父模型上?用户模型,user_profile模型和查询如下。我想返回一个具有以下属性的对象:['id','username','role','is_active','email','first_name','last_name']。谢谢!

<div class="bookParty">
  <span>Book a Party</span>
</div>

1 个答案:

答案 0 :(得分:0)

两个模型都需要在同一序列对象中定义。

const User = sequelize.define(
    'User',
    {
        username: { type: DataTypes.STRING, unique: true },
        email: { type: DataTypes.STRING, unique: true },
        password_hash: { type: DataTypes.STRING },
        role: { type: DataTypes.STRING, defaultValue: 'user' },
        is_active: { type: DataTypes.BOOLEAN, defaultValue: true }
    },
    { timestamps: true, freezeTableName: true }
);
const UserProfile = sequelize.define(
    'UserProfile',
    {
        first_name: DataTypes.STRING,
        last_name: DataTypes.STRING
    },
    { timestamps: true, freezeTableName: true }
);

user.hasOne(user_profile, {foreignKey: 'user_id'})

查询数据,例如:

sequelize.models.user.findAll({
    include: [
        {
            model: sequelize.models.user_profile,
        }
    ]
}).then((user) => {
    console.log(user);
}).catch((err) => {
    console.log(err);
});