'hasOne' association thorwing error [Nodejs, Sequelize]
'hasOne' association thorwing error [Nodejs, Sequelize]
我在 Nodejs 和 Sequelize 中描述了两个模型。我正在尝试在两个 table 'Creator'
和 'UserLogin'
之间创建关联 hasOne
。当我提到关联时,它会抛出错误 Creator.hasOne called with something that's not a subclass of Sequelize.Model
。
我已经在下面发布了两个 table 和关联代码。非常感谢任何帮助。我是 Sequelize 的新手。
//Creator Model
'use strict';
module.exports = function(sequelize, DataTypes) {
var Creator = sequelize.define(
'Creator',
{
firstname: { type: DataTypes.STRING },
lastname: { type: DataTypes.STRING },
},
{
createdAt: 'created_at',
updatedAt: 'updated_at',
deletedAt: 'deleted_at',
paranoid: true,
underscored: true,
tableName: 'creator',
},
);
return Creator;
};
//UserLogin Model
'use strict';
module.exports = function(sequelize, DataTypes) {
var UserLogin = sequelize.define(
'UserLogin',
{
creator_id: {type:DataTypes.INTEGER},
username: { type: DataTypes.STRING },
password: {type:DataTypes.STRING},
creatorfile: {type:DataTypes.STRING}
},
{
createdAt: 'created_at',
updatedAt: 'updated_at',
deletedAt: 'deleted_at',
paranoid: true,
underscored: true,
tableName: 'UserLogin',
},
);
return UserLogin;
};
//Association Defining
global.db.Creator.hasOne(global.db.UserLogin, {
onDelete: 'cascade',
foreignKey: 'creator_id',
});
P.S:'Creator'
table 和其他 table 之间存在 hasMany
关联,并且有效。我定义 hasMany
关联的方式与我尝试做的方式相同 hasOne
。我不确定为什么 hasOne
会抛出上述错误。
我犯了一个愚蠢的错误。我提到所有模型的 global.db
UserLogin
模型的关键是 Login
这就是它抛出错误的原因。我试图与 global.db.UserLogin
建立联系。相反,它将是 global.db.Login
global.db = {
Sequelize: Sequelize,
sequelize: sequelize,
Creator: require(__dirname + '/creator')(sequelize, Sequelize.DataTypes),
Install: require(__dirname + '/install')(sequelize, Sequelize.DataTypes),
Applications: require(__dirname+'/application')(sequelize, Sequelize.DataTypes),
Login: require(__dirname+'/userlogin')(sequelize,Sequelize.DataTypes)
/*
*
* TODO add any additional models here.
*
*/
};
//Association Defining
global.db.Creator.hasOne(global.db.Login, {
onDelete: 'cascade',
foreignKey: 'creator_id',
});
我在 Nodejs 和 Sequelize 中描述了两个模型。我正在尝试在两个 table 'Creator'
和 'UserLogin'
之间创建关联 hasOne
。当我提到关联时,它会抛出错误 Creator.hasOne called with something that's not a subclass of Sequelize.Model
。
我已经在下面发布了两个 table 和关联代码。非常感谢任何帮助。我是 Sequelize 的新手。
//Creator Model
'use strict';
module.exports = function(sequelize, DataTypes) {
var Creator = sequelize.define(
'Creator',
{
firstname: { type: DataTypes.STRING },
lastname: { type: DataTypes.STRING },
},
{
createdAt: 'created_at',
updatedAt: 'updated_at',
deletedAt: 'deleted_at',
paranoid: true,
underscored: true,
tableName: 'creator',
},
);
return Creator;
};
//UserLogin Model
'use strict';
module.exports = function(sequelize, DataTypes) {
var UserLogin = sequelize.define(
'UserLogin',
{
creator_id: {type:DataTypes.INTEGER},
username: { type: DataTypes.STRING },
password: {type:DataTypes.STRING},
creatorfile: {type:DataTypes.STRING}
},
{
createdAt: 'created_at',
updatedAt: 'updated_at',
deletedAt: 'deleted_at',
paranoid: true,
underscored: true,
tableName: 'UserLogin',
},
);
return UserLogin;
};
//Association Defining
global.db.Creator.hasOne(global.db.UserLogin, {
onDelete: 'cascade',
foreignKey: 'creator_id',
});
P.S:'Creator'
table 和其他 table 之间存在 hasMany
关联,并且有效。我定义 hasMany
关联的方式与我尝试做的方式相同 hasOne
。我不确定为什么 hasOne
会抛出上述错误。
我犯了一个愚蠢的错误。我提到所有模型的 global.db
UserLogin
模型的关键是 Login
这就是它抛出错误的原因。我试图与 global.db.UserLogin
建立联系。相反,它将是 global.db.Login
global.db = {
Sequelize: Sequelize,
sequelize: sequelize,
Creator: require(__dirname + '/creator')(sequelize, Sequelize.DataTypes),
Install: require(__dirname + '/install')(sequelize, Sequelize.DataTypes),
Applications: require(__dirname+'/application')(sequelize, Sequelize.DataTypes),
Login: require(__dirname+'/userlogin')(sequelize,Sequelize.DataTypes)
/*
*
* TODO add any additional models here.
*
*/
};
//Association Defining
global.db.Creator.hasOne(global.db.Login, {
onDelete: 'cascade',
foreignKey: 'creator_id',
});