sequelize.js 中的自定义 json 响应
Custom json response in sequelize.js
我使用 sequelize 从 mysql 数据库获取 json。所以我有两个模型 Menu
和 Product
进一步的关联,如:
Menu.js
classMethods: {
associate: function(models) {
Menu.hasMany(models.Product, {foreignKey: 'menu_id'})
}
}
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;
}
}
和
Product.findAll({
where: { /* id: */ },
include: [
{ model: Menu }
]
}).success(function(match) {
res.json(match);
});
然后我得到:
{
"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"
}
}
是否可以仅使用菜单模型中的图标扩展产品数组?喜欢:
{
"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",
}
感谢您的帮助!
产品和菜单是多对一的关联。所以 Product.find() 不能 return 产品数组。因为产品对应一个菜单。
您可以向产品模型添加自定义 toJSON
方法:
instanceMethods: {
toJSON: function () {
var values = this.get();
if (this.Menu) {
values.icon = this.Menu.icon;
}
return values;
}
}
我使用 sequelize 从 mysql 数据库获取 json。所以我有两个模型 Menu
和 Product
进一步的关联,如:
Menu.js
classMethods: {
associate: function(models) {
Menu.hasMany(models.Product, {foreignKey: 'menu_id'})
}
}
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;
}
}
和
Product.findAll({
where: { /* id: */ },
include: [
{ model: Menu }
]
}).success(function(match) {
res.json(match);
});
然后我得到:
{
"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"
}
}
是否可以仅使用菜单模型中的图标扩展产品数组?喜欢:
{
"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",
}
感谢您的帮助!
产品和菜单是多对一的关联。所以 Product.find() 不能 return 产品数组。因为产品对应一个菜单。
您可以向产品模型添加自定义 toJSON
方法:
instanceMethods: {
toJSON: function () {
var values = this.get();
if (this.Menu) {
values.icon = this.Menu.icon;
}
return values;
}
}