How to set extra attributes of through model on creation in SequelizeJS?(如何在 SequelizeJS 中设置创建时通过模型的额外属性?)
问题描述
我的模特:
Recipe (id, name)
Ingredient (id, name)
Recipe_Ingredient (recipeId, ingredientId, quantity)
我的联想:
Recipe.belongsToMany(Ingredient, { through: Recipe_Ingredient })
Ingredient.belongsToMany(Recipe, { through: Recipe_Ingredient })
我的问题:
我如何创建一个包含一些成分和数量的食谱?
How can I create a Recipe with some Ingredients and the quantities attached to them?
我试过了:
Recipe.create({
name: 'Pizza',
ingredients:[
{
name: 'mozarella',
recipe_ingredients: {
quantity: 5
}
}
]
}, {
include:[Ingredient]
})
为配方、成分和配方_成分创建记录.唯一的问题是数量的值不是从数据源收集的.
Records are created for Recipe, Ingredient and the Recipe_Ingredient. The only problem is that the value of the quantity is not collected from the data source.
推荐答案
过去无法做到这一点,但在 2018 年 10 月 23 日,这在 sequelize PR #10050.
It was not possible to do this in the past, but in October 23, 2018 this was fixed in sequelize PR #10050.
截至今天 (2018-10-24),修复程序尚未发布,但只要 v5.0.0-beta14
发布,您就可以执行以下操作:
As of today (2018-10-24) the fix is not released yet, but as soon as v5.0.0-beta14
comes out, you'll be able to do the following:
Recipe.create({
name: 'Pizza',
ingredients: [
{
name: 'mozarella',
recipe_ingredient: {
quantity: 5
}
}
]
}, {
include: Ingredient
})
另外,请注意正确的用法是单数形式的 recipe_ingredient:
,而不是您在问题中尝试的复数形式.这是有道理的,因为对于给定的成分,与给定的食谱相关联,总是只涉及一个 Recipe_Ingredient.
Also, note that the correct usage is recipe_ingredient:
in the singular form, not in the plural form as you tried in your question. This makes sense, because for a given Ingredient, associated with a given Recipe, there is only one Recipe_Ingredient involved, always.
如果你不想等待 v5.0.0-beta14
(虽然它可能很快就会发布),你可以直接从 github 的 master
分支安装它如下:
If you do not want to wait for v5.0.0-beta14
(although it will probably be released very soon), you can install it directly from github's master
branch as follows:
npm install --save https://github.com/sequelize/sequelize/tarball/master
这篇关于如何在 SequelizeJS 中设置创建时通过模型的额外属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 SequelizeJS 中设置创建时通过模型的额外属性?
基础教程推荐
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 直接将值设置为滑块 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01