gpt4 book ai didi

node.js - Sequelize 关联/模型在没有任何更改时突然无法识别,Vague 错误无法读取未定义的属性 'field'

转载 作者:行者123 更新时间:2023-12-03 22:18:29 27 4
gpt4 key购买 nike

我一直在使用 React、node、sequelize、Redux 从事这个项目一段时间,并且一切都运行良好。前几天我决定更新我的一些 Node 包,因为我经常尝试这样做,但是在我运行 npm update --save/--save-dev 之后,Sequelize 突然中断了.

突然之间,当我尝试运行该应用程序时,我对 sql 的初始提取失败,并且我的 sequelize 模型抛出一个错误:

/node_modules/sequelize/lib/associations/belongs-to-many.js:130
this.sourceKeyField = this.source.rawAttributes[this.sourceKey].field || this.sourceKey;
^

TypeError: Cannot read property 'field' of undefined
at new BelongsToMany (/Users/dlmusic/Desktop/Cullan - Site/Metadata-Tagging-With-Redux/node_modules/sequelize/lib/associations/belongs-to-many.js:130:69)
at Function.belongsToMany (/Users/dlmusic/Desktop/Cullan - Site/Metadata-Tagging-With-Redux/node_modules/sequelize/lib/associations/mixin.js:64:25)
at Object.<anonymous> (/Users/dlmusic/Desktop/Cullan - Site/Metadata-Tagging-With-Redux/authenticationBI.js:63:12)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:643:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Module.require (internal/modules/cjs/loader.js:683:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (/Users/dlmusic/Desktop/Cullan - Site/Metadata-Tagging-With-Redux/api/routes/backgroundInstrumentalsRoutes.js:6:36)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:643:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Module.require (internal/modules/cjs/loader.js:683:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (/Users/dlmusic/Desktop/Cullan - Site/Metadata-Tagging-With-Redux/server.js:4:39)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:643:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:839:10)

这很奇怪。我最近才在前端工作。我一个多月都没碰过任何sequelize模型、关联、 Controller ,更何况关联已经运行了三个多月没有错误,突然就说无效了。

好的。美好的。没有大碍。 Sequelize 只是不喜欢其中一个模块,所以我将重置我的 git 头,删除我的模块文件夹,并找出它不喜欢哪个模块。

我重置 git head,删除我的模块文件夹,然后运行 ​​ npm i .

当我以前从未收到此错误时,仍然会出现相同的错误。

这会阻止创建 sequelize 关联表,因此我的应用程序甚至无法启动。

我注释掉导致错误的 sequelize 关联,现在 sequelize 运行良好,但我需要这些关联才能使我的应用程序的某些功能正常工作。

我正准备拔掉我的头发,这狗屎让我很沮丧。我什至不知道该怎么办了。我试图通过改变方法来扰乱我的联想,但实际上没有任何效果。

以下是它显然存在问题的 Sequelize 关联。澄清一下,每个类别可以有多个样式,但每个样式只有一个类别。
CategoryBI.belongsToMany(StyleBI,
{ constraints: false,
timestamps: false,
foreignKey: "cat_id",
sourceKey: "style_id",
through: "cat_styles"
});

StyleBI.belongsTo(CategoryBI,
{ constraints: false,
timestamps: false,
foreignKey: "cat_id",
targetKey: "cat_id",
through: "cat_styles"
});

和模型:
module.exports = function(sequelize, DataTypes) {
return sequelize.define("categories", {
cat_id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
cat_name: {
type: DataTypes.STRING(50),
allowNull: true
}
}, {
tableName: "categories",
underscored: true,
timestamps: false
});
};
module.exports = function(sequelize, DataTypes) {
return sequelize.define("styles", {
style_id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
cat_id: {
type: DataTypes.INTEGER(8),
allowNull: false,
defaultValue: "0"
},
style_name: {
type: DataTypes.STRING(50),
allowNull: true
},
style_img: {
type: DataTypes.STRING(55),
allowNull: true
}
}, {
tableName: "styles",
underscored: true,
timestamps: false
});
};

最佳答案

所以我改变了关联语法,它又开始工作了。我对协会如何突然停止工作感到完全困惑,但这是我将其更改为的。

CategoryBI.hasMany(StyleBI,
{ constraints: false,
timestamps: false,
foreignKey: "style_id",
sourceKey: "cat_id"
});

StyleBI.belongsTo(CategoryBI,
{ constraints: false,
timestamps: false,
foreignKey: "style_id",
targetKey: "cat_id"
});

我删除了直通表并翻转了关联键。

关于node.js - Sequelize 关联/模型在没有任何更改时突然无法识别,Vague 错误无法读取未定义的属性 'field',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57893394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com