【问题标题】:'hasOne' association thorwing error [Nodejs, Sequelize]'hasOne' 关联抛出错误 [Node Js,Sequelize]
【发布时间】:2021-07-19 15:44:45
【问题描述】:

我在 Nodejs 和 Sequelize 中描述了两个模型。我正在尝试在两个表'Creator''UserLogin' 之间创建关联hasOne。当我提到关联时,它会抛出错误Creator.hasOne called with something that's not a subclass of Sequelize.Model。 我已经在下面发布了这两个表和关联代码。非常感谢任何帮助。我是 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' 表和其他正在工作的表之间存在 hasMany 关联。我定义hasMany 关联的方式与我尝试做hasOne 的方式相同。我不确定为什么hasOne 会抛出上述错误。

【问题讨论】:

    标签: node.js express sequelize.js


    【解决方案1】:

    我犯了一个愚蠢的错误。我提到所有模型的global.dbUserLogin 模型的关键是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',
    });
    

    【讨论】:

      猜你喜欢
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      相关资源
      最近更新 更多