我需要创建另一个示例后,我的模型校友创建另一个usuario示例。
我正在使用sequelize创建一个 Alumnok
创建一个 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.log("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)
1条答案
按热度按时间0h4hbjxa1#
使用
sequelize.models.Alumnok.create
代替models.Alumnok.create