2017-09-11 17 views
0

私はnodejsでmongodbとmysqlを使用しています。mongodbから値を取得する正しい方法は?

employee.find({status:1}, function(error,response) { 
       for(i=0;i<=response.length;i++){ 
        var fileid = response[i]._id; 
        var sql = "SELECT * FROM EMPLOYEE WHERE `id` = '"+fileid+"'"; 
        con.query(sql, function (err, result) { 
    if (err) throw err; 
    console.log("Result: " + result); 
    }); 
        } 
       }) 

上記のコードは私の正確な記録と結果を与えるが、私のロガーファイルに私は以下のエラー毎回取得していますが、私は私のサービスのログを記録するためにウィンストンを使用しています私のoutput.Iを得ることに問題はありません。私がこのエラーを心配している主な理由は、私のノードjs APiが8時間ごとに多かれ少なかれダウンしていて、データベースがアイドル状態にならない(永久にnpmモジュールを使用して永久にサービスを実行する)ため、私のノードprocessessを殺すための理由かもしれません。以下は私のエラーです。どんな助け?

"stack":["TypeError: Cannot read property '_id' of undefined"(var fileid = response[i]._id;)] 
+0

あなたは[i]が ''応答して何を得る結果? – kumbhanibhavesh

答えて

2

iresponse.length未満でなければなりませんので。配列の長さは常に最後のインデックスよりも長くなります。このような例 、

var arr = [1,2]; //length is 2 and last index value is 1 

変更しますコード:for(i=0;i<response.length;i++)

employee.find({status:1}, function(error,response) { 
        for(i=0;i<response.length;i++){ 
         var fileid = response[i]._id; 
         var sql = "SELECT * FROM EMPLOYEE WHERE `id` = '"+fileid+"'"; 
         con.query(sql, function (err, result) { 
         if (err) throw err; 
          console.log("Result: " + result); 
         }); 
         } 
        }) 
+0

バグ修正....どんな可能性?それは私のWebサービスが特定の期間の後に殺されている理由ですか? – Jagadeesh

+0

はい。エラー処理が行われていないため、サーバーがクラッシュします。 – Ved

+0

私のサービスが長寿命で動作するかどうか、永遠に実行されているこれらのエラーはすべて一度に修正されていますか? – Jagadeesh

関連する問題