2017-12-09 5 views
1

これは私のcronジョブのAPIです:javascript(nodejs)のforやforeachを使ってオブジェクト値を持つ配列をmysqlに挿入するには?

{ 
    "draftType" : "contactdraft", 
    "scheduledTime" : null, 
    "senderdata" : "", 
    "draftData" : { 
     "contacts" : [ 
      { 
       "updatedAt" : "2017-12-07T12:09:10.000Z", 
       "createdAt" : "2017-12-07T12:09:10.000Z", 
       "data3" : "", 
       "data2" : "", 
       "data1" : "", 
       "country" : "", 
       "url" : "", 
       "company" : "", 
       "email" : "[email protected]", 
       "dob" : null, 
       "postcode" : "", 
       "region" : "", 
       "city" : "", 
       "street" : "", 
       "lastName" : "Sameer", 
       "firstName" : "Mohamed", 
       "gsm" : "123344", 
       "id" : 12 
      }, 
      { 
       "updatedAt" : "2017-12-07T12:09:58.000Z", 
       "createdAt" : "2017-12-07T12:09:58.000Z", 
       "data3" : "", 
       "data2" : "", 
       "data1" : "", 
       "country" : "", 
       "url" : "", 
       "company" : "", 
       "email" : "[email protected]", 
       "dob" : null, 
       "postcode" : "", 
       "region" : "", 
       "city" : "", 
       "street" : "", 
       "lastName" : "Pandiyan", 
       "firstName" : "Ganesh", 
       "gsm" : "1233", 
       "id" : 13 
      } 
     ] 
    }, 
    "senderName" : "ifelse", 
    "message" : "hey...", 
    "draftName" : "December 9", 
} 
私はdraftDataとSENDERNAMEからGSM番号を挿入したい

とメッセージ:私は、JSONオブジェクトのこのタイプを取得していますfinalData変数で

var job = new cronJob('* * * * * *', function() { 
    Draft.find().then(data => { 
     var finalData = data; 
      Profsms.create({ 
       phoneno: draftData.contacts.gsm, 
       sender: senderName, 
       message: message 
      }).then(function (data) { 
       if (data) { 
        console.log("successfully moved in profsms mysql"); 
       } else { 
        console.log("failed"); 
       } 
      }) 
    }); 
}, function() { 
    console.log('DelCron Job finished.'); 
}, true, 'Asia/Calcutta'); 

デシベル

に値を格納したい

    phoneno: draftData.contacts.gsm, 
        sender: senderName, 
        message: message 

これを行う方法?

私はmysqlでsequelize ORMを使用しています。

forまたはforeachや他の関数をjavascriptで使用して解決するのを手伝ってもらえますか?

答えて

1

私は最終的に自分自身のコードを書いて、答えを得た:

var job = new cronJob('* * * * * *', function() { 
    Draft.find().then(data => { 
     var finalData = data; 
     var array = []; 
     for (var i = 0; i < finalData.length; i++) { 
      for (var j = 0; j < finalData[i].draftData.contacts.length; j++) { 
       array.push({ 
        phoneno: finalData[i].draftData.contacts[j].gsm, 
        sender: finalData[i].senderName, 
        message: finalData[i].message 
       }) 
      } 
     } 
     Profsms.bulkCreate(array).then(function (data) { 
      if (data) { 
       console.log("successfully moved in profsms mysql"); 
      } else { 
       console.log("failed"); 
      } 
     }) 
    }); 
}, function() { 
    console.log('DelCron Job finished.'); 
}, true, 'Asia/Calcutta'); 

はこの良いアプローチですか?

関連する問題