如何使用sequelize中的afterCreate钩子创建另一个实例

时间:2018-12-20 12:30:59

标签: javascript mysql sequelize.js

创建Usuario的另一个实例后,我需要创建我的模型Alumnok的另一个实例。

在使用具有相同Usuario字段的Usuario实例创建后,我正在使用sequelize创建一个Alumnok模型实例,以为POST。

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)

这是最终结果。

        'use strict'
    const models = require('../models')
    module.exports = (sequelize, DataTypes) => {
      const Usuario = sequelize.define('Usuario', {
        email: {
          type: DataTypes.STRING(30),
          primaryKey: true
        },
        dni: DataTypes.STRING,
        direccion: DataTypes.STRING,
        nombre: DataTypes.STRING,
        apellidos: DataTypes.STRING,
        password: DataTypes.STRING,
        fechaNac: DataTypes.STRING,
        rol: DataTypes.INTEGER,
        foto: DataTypes.STRING
      }, {
        hooks:{
          afterCreate: (usuario) =>{

            return models.Alumnok.create({
              email: usuario.email,
              dni: usuario.dni,
              direccion: usuario.direccion,
              nombre: usuario.nombre,
              apellidos: usuario.apellidos,
              password: usuario.password,
              fechaNac: usuario.fechaNac,
              rol: usuario.rol,
              foto: usuario.foto
            })
            console.log("Se ha creado el usuario con el nombre: " + usuario.nombre);
          }
        }
      });
      Usuario.associate = function(models) {
        // associations can be defined here
      };
      return Usuario;
    };

1 个答案:

答案 0 :(得分:0)

使用sequelize.models.Alumnok.create代替models.Alumnok.create