2017-03-06 14 views
0

bulkCreateメソッドに問題があります。ここでは、配列の値がbulkCreateメソッドに渡されず、JSON形式の適切な形式で送信されています。保存された変数がオブジェクトの周りに ""を追加しているのは事実でしょうか?ここSequelize - 受け入れ可能なbulkCreate形式

は配列で、コード設定オブジェクト:console.log出力

return models.User.findAll({ 
       where: { 
        email: { $or: userEmails} 
       } 
      }).then(function(user){ 
       console.log('Member is triggered'); 
       console.log(user); 

       for(var key in user){ 
        memberAssociation.push("{ userId: " + user[key].userId + ", memberEmail: " + user[key].email + ", organizationId: " + user[key].organizationId + "}"); 


       } 

        console.log('Here is the array ' + memberAssociation); 
}) 

を:そしてbulkCreateとして送信

Here is the array { userId: 126, memberEmail: [email protected], organizationId: 1},{ userId: 127, memberEmail: [email protected], organizationId: 1} 

出力(メンバー):

[ '{ userId: 126, memberEmail: [email protected], organizationId: 1}', 
    '{ userId: 127, memberEmail: [email protected], organizationId: 1}' ] 

SQL:ここ

Executing (default): INSERT INTO `member` (`member_id`,`created_at`,`updated_at`) VALUES (NULL,'2017-03-06 07:36:57','2017-03-06 07:36:57'),(NULL,'2017-03-06 07:36:57','2017-03-06 07:36:57'); 

である私の完全なPOSTルート:

return models.User.findAll({ 
       where: { 
        email: { $or: userEmails} 
       } 
      }).then(function(user){ 
       console.log('Member is triggered'); 
       console.log(user); 

       for(var key in user){ 
        memberAssociation.push("{ userId: " + user[key].userId + ", memberEmail: " + user[key].email + ", organizationId: " + user[key].organizationId + "}"); 
       } 

       console.log('Here is the array ' + memberAssociation); 

      }).then(function(member){ 
       console.log(memberAssociation); 
       return models.Member.bulkCreate(memberAssociation).then(function(member){ 
        console.log(member); 
        console.log('New member') 
        res.send('Success') 
       }); 

答えて

1

理由は、あなたが実行したときにということですmemberAssociation.push("...")オブジェクトの代わりにすべての反復でStringmemberAssociation配列に追加します。あなたは、オブジェクトを毎回

memberAssociation.push({ 
    userId: user[key].userId, 
    memberEmail: user[key].email, 
    organizationId: user[key].organizationId 
}); 

をプッシュする必要があります。そして、あなたはあなたのコード内で行ったよう、上記で作成した配列でbulkCreateを行うことができます。 documentationbulkCreaterecordsパラメータは、オブジェクトの配列であることを言う:

私の明白な欠陥をキャッチするため

+0

おかげからインスタンスを作成するオブジェクト(キー/値のペア)のリスト。完璧に働いた。 – cphill

関連する問題