2017-08-23 4 views
0

特定の間隔でDBを照会しようとしています。だからノードコーンを使用しています。私は1分ごとに接続を作成し、クエリが完了したら閉じます。それは最初の1分間だけ動作し、次の分、コールバックを使用していても、quitを呼び出した後にハンドシェークをエンキューできないというエラーがスローされます。いくつかのいずれかは、私はあなたが間違ってノードコールバックを取得するCron quitエラーを呼び出した後にハンドシェークをエンキューできません

app.js

var sController = require('./sController'); 
cron.schedule('* * * * *',function(){ 
    console.log("I am running every minute"); 
    var params ="dddd"; 
    sController.updateDb(params,function(err,res){ 
    console.log("xxxx"); 
}); 

}); 

sController.js

var sModel = require('./smodel'); 
var sController = function(){} 

sController.prototype.updateDb = function(params,callback){ 
    sModel.updateDb(params,function(res,err){ 
     if(res){ 
      console.log("kkk"); 
     } 
     callback(err,res); 
    }); 
} 
module.exports = new sController(); 

smodel.js

var connection = mysql.createConnection(mysqlConfig); 
function mysqlConnect() { 
    connection.connect(); 
} 
function mysqlClose() { 
    if(!connection._protocol._ended){ 
     connection.end(); 
    } 
} 
var sModel = function() {}; 

sModel.prototype.updateDb = function(params,callback){ 
    updateDb(params, function(err, res) { 
     callback(err,res); 
    }); 
}; 
function updateDb(params,callback){ 
    var query = 'SELECT * from tablename'; 
    mysqlConnect(); 
    connection.query(query,function(err,rows,fields){ 
     if(!err){ 
      console.log(rows.length); 
     } 
     callback(err,rows); 
    }); 
    mysqlClose(); 
} 

module.exports = new sModel(); 

答えて

関連する問題