gpt4 book ai didi

node.js - Sequelize HasMany 不起作用

转载 作者:行者123 更新时间:2023-12-03 22:42:23 26 4
gpt4 key购买 nike

我在我的 sails-hook-sequelize 应用程序中使用 sails-hook-sequelize-blueprintssails.js

我有一个名为 Site 的模型。

module.exports = {

attributes: {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING,
required: true
}
},
associations: function() {
Site.hasMany(Templates, {
as: 'templates'
});
}
};

每个站点都有多个关联的 Templates
module.exports = {

attributes: {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: Sequelize.STRING,
required: true
}
}
};

我收到一条错误消息
/user/myproject/node_modules/sails-hook-sequelize-blueprints/index.js:362
var alias = foreign.as || foreign.name || foreign;
^

TypeError: Cannot read property 'as' of undefined

知道它可能是什么吗?

最佳答案

您需要将 foreignKey 添加到 hasMany 定义中:

    Site.hasMany(Templates, {
as: 'templates',
foreignKey: 'SiteId'
});

并将 belongsTo 关联添加到 Templates 模型定义中:
    Templates.belongsTo(Site) // this will add SiteId to the Templates table

与您的命名保持一致也是一种很好的做法 - 模型名称应该是单数( Template 而不是 Templates ),并且这些关系及其以下方法将更加不言自明。 Sequelize 将在有意义的地方复数化(即您正在处理许多实例)。

关于node.js - Sequelize HasMany 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34597174/

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