Как создать еще один экземпляр с хуком afterCreate в sequelize

Мне нужно создать еще один экземпляр моей модели Alumnok после создания еще одного экземпляра Usuario.

Я использую sequelize для создания одного экземпляра модели Alumnok мысли POST после создания экземпляра Usuario с теми же полями Usuario.

'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.info("Se ha creado el usuario con el nombre: " + usuario.nombre);
            }
        }
    });
    Usuario.associate = function(models) {
        // associations can be defined here
    };
    return Usuario;
};

Это конечный результат.

Unhandled rejection TypeError: Cannot read property 'create' of undefined
    at Function.afterCreate (C:\Users\Jose Fernando\Desktop\api\models\usuario.js:21:31)
    at Promise.each.hook (C:\Users\Jose Fernando\Desktop\api\node_modules\sequelize\lib\hooks.js:130:35)
    at tryCatcher (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\util.js:16:23)
    at Object.gotValue (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\reduce.js:155:18)
    at Object.gotAccum (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\reduce.js:144:25)
    at Object.tryCatcher (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\promise.js:512:31)
    at Promise._settlePromise (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\promise.js:569:18)
    at Promise._settlePromiseCtx (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\promise.js:606:10)
    at _drainQueueStep (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\async.js:142:12)
    at _drainQueue (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\async.js:131:9)
    at Async._drainQueues (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\async.js:147:5)
    at Immediate.Async.drainQueues [as _onImmediate] (C:\Users\Jose Fernando\Desktop\api\node_modules\bluebird\js\release\async.js:17:14)
    at runCallback (timers.js:705:18)
    at tryOnImmediate (timers.js:676:5)
    at processImmediate (timers.js:658:5)
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
1 440
1

Ответы 1

Используйте sequelize.models.Alumnok.create вместо models.Alumnok.create

Другие вопросы по теме