Sequelize.js X与Y不关联
我一直在关注sequelize的文档,当我谈到关系时遇到了一个问题。下面是我非常简单的代码,使用Sequelize.js X与Y不关联,sequelize.js,Sequelize.js,我一直在关注sequelize的文档,当我谈到关系时遇到了一个问题。下面是我非常简单的代码,使用belongsTo import Sequelize, { STRING, INTEGER, TEXT } from 'sequelize'; const sequelize = new Sequelize('dbname', '', ''); const User = sequelize.define('user', { name: STRING, age: INTEGER })
belongsTo
import Sequelize, { STRING, INTEGER, TEXT } from 'sequelize';
const sequelize = new Sequelize('dbname', '', '');
const User = sequelize.define('user', {
name: STRING,
age: INTEGER
});
const Item = sequelize.define('item', {
name: STRING,
price: INTEGER
});
Item.belongsTo(User);
sequelize.sync({ force: true }).then(() => {
User.create({
name: 'Hobbyist',
age: 22,
Item: {
name: 'Phone',
price: 199
}
}, {
include: [ Item ]
});
});
我得到的错误:
Unhandled rejection Error: item is not associated to user!
Sequelize与互惠关系一起工作 因此,如果您想让
项属于用户
,您可能还想让用户拥有一个项
在您的情况下,您有关联的用户到项目,但没有项目到用户。因此,让我们通过添加:
Item.belongsTo(User);
User.hasOne(Item); // this line
现在Sequelize知道每个用户都有一个条目,这可以让我们有机会进行JOIN
查询
库处理关联属性的方式是通过表名。因此,在您的情况下,您还需要将项目
重命名为项目
,如下所示:
User.create({
name: 'Hobbyist',
age: 22,
item: {
// ^ item, not Items
name: 'Phone',
price: 199
}
}, {
include: [ Item ]
});
谢谢,我没有意识到“物品->物品”的事情,并且开始滥用别名。Sequelize正在变得惊人。