gpt4 book ai didi

sequelize.js - 在 sequelize 中插入具有多个嵌套关联的对象的正确方法是什么?

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

我正在尝试使用事务创建具有多个嵌套关联的对象。我正在使用 Postgres,对象如下:

var Product = sequelize.define('product', {/* attributes */});
var ProductDetail = sequelize.define('productDetail', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
/* attributes */
});
var ProductVariation = sequelize.define('productVariation', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
/* attributes */
});

Product.hasMany(ProductDetail);
Product.hasMany(ProductVariation);

我尝试创建一个事务来一次性插入新产品和对应的关联:
return models.sequelize.transaction(function (t) {
return models.product.create({
name: req.body.name,
enabled: req.body.enabled,
productDetails: req.body.productDetails,
productVariations: req.body.productVariations
}, {
include: [models.productDetail, models.productVariation],
transaction: t
}
)
}).then(function (result) {
//Success
}).catch(function (error) {
//Shouldn't rollback?
});

我收到一个错误 [ReferenceError: product is not defined] 。此外,事务没有回滚,因为我可以在数据库中看到一个新产品。

该错误表明该产品在尝试创建关联时不存在。这很奇怪,因为在抛出错误之后,产品是唯一创建的东西。

我究竟做错了什么?

谢谢你。

最佳答案

ReferenceError 是一个 Javascript 错误,而不是一个 Sequelize 错误。

您只需在调用 create() 时将 product 替换为 Product,因为您使用大写字母实例化变量。

关于sequelize.js - 在 sequelize 中插入具有多个嵌套关联的对象的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37796759/

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