【问题标题】:How To Insert Arrays with objects values into mysql using for or foreach in javascript (nodejs)?如何在javascript(nodejs)中使用for或foreach将具有对象值的数组插入mysql?
【发布时间】:2018-05-23 15:51:32
【问题描述】:

这是我的 cron 作业 api:

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');

finalData 变量中,我得到了这种类型的 json 对象:

{
    "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" : "sameer@ech.com",
                "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" : "ganesh@ich.com",
                "dob" : null,
                "postcode" : "",
                "region" : "",
                "city" : "",
                "street" : "",
                "lastName" : "Pandiyan",
                "firstName" : "Ganesh",
                "gsm" : "1233",
                "id" : 13
            }
        ]
    },
    "senderName" : "ifelse",
    "message" : "hey...",
    "draftName" : "December 9",
}

我想将来自 draftData 和 senderName 的 gsm 号码和消息值插入到 db 中

想要收藏

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

如何做到这一点?

我正在使用 mysql 的 sequelize ORM。

你能帮我用 for 或 foreach 或 javascript 中的任何其他函数解决这个问题吗?

【问题讨论】:

    标签: mysql arrays json node.js object


    【解决方案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');
    

    这是好方法吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2020-05-28
      • 2018-05-31
      • 2019-06-29
      • 2018-06-22
      • 2021-11-09
      • 2021-03-25
      相关资源
      最近更新 更多