节点Js循环查询-同步和变量更新问题

时间:2018-10-12 15:42:43

标签: javascript mysql node.js mongodb

我要执行以下操作

  

从mysql的开始〜start + 30选择信息

信息包含日期信息 然后从我要更新的信息开始+ 30。

我有问题。问题是当我在循环中执行查询功能时,它无法同步。

这是我的代码。

var jdate = new Array(); //string data compare for date mysql -> javascript
for (var i = 0; i < 2; i++) {
  jdate[i] = new Date();
}
var date = new Array(); //string data use in sql pure  mysql data
var sql = "SELECT jobEndDt,jobData FROM Table WHERE jobEndDt is not null AND jobEndDt BETWEEN \"2016-06-2 00:00:00\" AND date_add(\"2016-06-2 00:00:00\",interval 30 day) ORDER BY jobEndDt";

for (; jdate[0].getDate() + 30 <= jdate[1];) {

  connection.query(sql, function(err, rows, fields) {
    date[0] = rows[0].jobEndDt;
    date[1] = rows[rows.length - 1].jobEndDt;

    if (err) throw err;
    console.log("Before__Date : " + date[0] + " " + date[1]); //!!
    console.log("Before__sql : " + sql); //update ok..
    console.log('get data from server ' + rows.length);

    for (var i = 0; i < rows.length; i++) {
      var nd = new Mysql();
      nd.jobData = rows[i].jobData;
      nd.save();
    }
    console.log("save seq end " + rows.length);
    jdate[0] = new Date(date[0]);
    jdate[1] = new Date(date[1]);
    date[1] = dtosql(date[1]); // convert mysqldate to yyyy-mm-dd
    sql = "SELECT jobEndDt,jobData FROM Table WHERE jobEndDt is not null AND jobEndDt BETWEEN " + date[1] + " AND date_add(" + date[1] + ",interval 30 day) ORDER BY jobEndDt";
    console.log("After__sql : " + sql);

  });

}

这是结果

  

Before__Date:2016年6月2日星期四10:42:46 GMT-0400(EDT)2016年6月29日星期三19:05:21 GMT-0400(EDT)   Before__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-2 00:00:00”和date_add(“ 2016-06-2 00:00:00”,间隔30天)之间进行排序jobEndDt   从服务器189获取数据

     

保存序列结尾189   After__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt

     

Before__Date:2016年6月2日星期四10:42:46 GMT-0400(EDT)2016年6月29日星期三19:05:21 GMT-0400(EDT)   Before__sql:选择jobEndDt,表中的jobData WHERE jobEndDt不为空且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt   从服务器189获取数据

     

保存序列结尾189   After__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt

     

Before__Date:2016年6月2日星期四10:42:46 GMT-0400(EDT)2016年6月29日星期三19:05:21 GMT-0400(EDT)   在__sql之前:SELECT jobEndDt,表中的jobData WHERE jobEndDt不为空且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt   从服务器189获取数据

     

保存序列结尾189   After__sql:从表WHERE jobEndDt中选择SELECT jobEndDt,jobData不为空,并且jobEndDt在“ 2016-06-29 19:05:21”和date_add(“ 2016-06-29 19:05:21”,间隔30天)之间进行排序jobEndDt

程序继续执行此结果。

0 个答案:

没有答案