2017-05-30 12 views
-1

アソシエーション・メソッドを使用してSequelize orm NodeおよびSequelize ORMを使用してAPIを作成しています。使用されているデータベースはMYSQLです。私は以下のコードでbelongsTo()を使用しました。 各ユーザーにはお気に入りのゲームがあります。 user_Idを使用して各ユーザーのお気に入りのゲームを入手してください。 私は後に続ける結果を得ましたが、別のものを除きました。アソシエーション・メソッドを使用してSequelize orm

this.userFavoriteGameModel = require("../entity/favorite_game")(this.database, this.Sequelize); 
this.gameModel = require("../entity/game")(this.database, this.Sequelize); 

//Fecth user favorite game list 
    favoriteGameList(name, cb) { 
     let self = this; 
     var user_Id = 5; 
     self.userFavoriteGameModel.belongsTo(self.gameModel, { 
      as: "game_detail", 
      foreignKey: 'game_Id' 
     }); 
     self.userFavoriteGameModel.findAll({ 
      attributes: [ 
       'game_Id' 
      ], 
      where: { 
       user_id: user_Id 
      }, 
      include: [{ 
       model: self.gameModel, 
       as: 'game_detail', 
       attributes: ["game_Title", "game_Subtitle", "icon", "game_Rating"] 
      }], 
      group: ['game_Id'] 
     }).then(function (result) { 
      cb(result); 
      let obj1 = result; 
      let obj2 = Object.assign({}, obj1); 
      console.log(JSON.stringify(obj2)); 
     }, function (err) { 
      console.log('An error occurred while creating the table:', err); 
      cb(err); 
     }); 
    } 
} 

[ 
    { 
    "dataObject": [ 
     { 
     "game_Id": 57, 
     "game_detail": { 
      "game_Title": "battlefield1", 
      "game_Subtitle": "Limited edition", 
      "icon": "image.png", 
      "game_Rating": 2 
     } 
     }, 
     { 
     "game_Id": 58, 
     "game_detail": { 
      "game_Title": "battlefield2", 
      "game_Subtitle": "Limited edition", 
      "icon": "image.png", 
      "game_Rating": 1 
     } 
     } 
    ] 
    } 
] 

Excepting Result : 

[ 
    { 
    "dataObject": [ 
     { 
     "game_Id": 57, 
      "game_Title": "battlefield1", 
      "game_Subtitle": "Limited edition", 
      "icon": "image.png", 
      "game_Rating": 2 
     }, 
     { 
      "game_Id": 58, 
      "game_Title": "battlefield2", 
      "game_Subtitle": "Limited edition", 
      "icon": "image.png", 
      "game_Rating": 1 
     } 
    ] 
    } 
] 

答えて

0

sequelizeのORMあなたはsequelize結果を得ることができ、最終的な結果として、それをたくないならば、あなたはこの従う欲しいもののように手動でそれを作るhasManyのbelongsToのか、他の関係の結果として、ネストされたJSONを作る:

var finalResult={} 
for(var key in object){ 
    if(typeof object['key'] == 'object'){ 
     var parent=object['key'] 
     for(var childKey in parent){ 
        finalresult['childKey']=parent['childKey'] 
     } 
    }else{ 
     finalresult['key']=object['key'] 
    } 
} 
関連する問題