如何使用nodejs关联sequelizejs中的对象

时间:2017-12-16 10:43:48

标签: node.js orm

我不明白如何在sequelizejs中关联对象。

我阅读了文档(http://docs.sequelizejs.com/manual/tutorial/associations.html#associating-objects),但我仍然不了解如何使用它。

想法:我有对象用户和用户登录日志。它的1:M。

示例:

let dbUser = sequelize.define('user', {
    name: {
        type: Sequelize.STRING
    },
    email: {
        type: Sequelize.STRING
    },
    password: {
        type: Sequelize.STRING
    }
});
dbUser.sync({ force: true })

let dbUserLoginLog = sequelize.define('userloginlog', {
    text: {
        type: Sequelize.STRING
    }
});

//create 1:M relation to dbUser
dbUser.hasMany(dbUserLoginLog, { foreignKey: 'loginlog_pk' });
dbUserLoginLog.belongsTo(this.dbUser, { foreignKey: 'loginlog_pk' });

dbUserLoginLog.sync({ force: true })

现在,我可以像这样创建用户:

    dbUser.create({
                        name: req.body.name,
                        email: req.body.email,
                        password: hash
    });

如何为特定用户创建dbUserLoginLog并添加? 每次用户登录系统时都会创建dbUserLoginLog。

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

定义关联后,Sequelize会自动为您添加一些方法。从代码的外观来看,我可以像这样使用它:

dbUserLoginLog.create({/*...*/}).then((userLoginLog) => {
    dbUser.addUserloginlog([userLoginLog]);
});

有关添加的方法名称,请参阅:http://docs.sequelizejs.com/manual/tutorial/associations.html#naming-strategy