Mak*_*mat 4 javascript mysql node.js sequelize.js
我使用sequelize从mysql db获取json.所以我有两个模型Menu和Product进一步的关联,如:
Menu.js
classMethods: {
associate: function(models) {
Menu.hasMany(models.Product, {foreignKey: 'menu_id'})
}
}
Run Code Online (Sandbox Code Playgroud)
Product.js
classMethods: {
associate: function(models) {
Product.belongsTo(models.Menu, {foreignKey: 'menu_id'})
}
},
// IF I ADD BELOW CODE I HAVE ERROR: Possibly unhandled ReferenceError: menu is not defined
instanceMethods: {
toJSON: function () {
var values = this.get();
if (this.Menu) {
values.icon = menu.icon;
}
return values;
}
}
Run Code Online (Sandbox Code Playgroud)
和
Product.findAll({
where: { /* id: */ },
include: [
{ model: Menu }
]
}).success(function(match) {
res.json(match);
});
Run Code Online (Sandbox Code Playgroud)
然后我得到:
{
"id": 3,
"menu_id": 1,
"product_title": "whatever",
"price": 22,
"createdAt": "0000-00-00 00:00:00",
"updatedAt": "0000-00-00 00:00:00",
"Menu": {
"id": 1,
"menu_title": "whatever",
"icon": "someurlforicon",
"createdAt": "2014-12-29T00:00:00.000Z",
"updatedAt": "2014-12-29T00:00:00.000Z"
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以从菜单模型中扩展带有图标的产品数组?喜欢:
{
"id": 3,
"menu_id": 1,
"product_title": "whatever",
"price": 22,
"icon": "someurlforicon",
"createdAt": "0000-00-00 00:00:00",
"updatedAt": "0000-00-00 00:00:00",
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
您可以toJSON向Product模型添加自定义方法:
instanceMethods: {
toJSON: function () {
var values = this.get();
if (this.Menu) {
values.icon = this.Menu.icon;
}
return values;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2410 次 |
| 最近记录: |