2016-11-07 9 views
0

nodejs関数に次のコードがあります。 IF条件が真であっても、stringResponse変数の値が更新されていません。nodejsコードの値にアクセスできない

var fs = require('fs'), 
       byline = require('byline'); 
      var stream = fs.createReadStream('Solutionbank.csv'); 
      var stringResponse = "We found a similar issue. "; 
      stream = byline.createStream(stream); 
      stream.on('data', function(line) { 
       var csvLine = line.toString('utf8'); 
        csvLine = csvLine.toLowerCase().trim(); 

       var msgText = subject.toLowerCase().trim(); 
       //console.log("email block",msgText); 
       if(csvLine.indexOf(msgText) > -1) { 
       var arr = line.toString('utf8').split(","); 

       stringResponse = stringResponse + "Issue ID"+arr[0]+",Subject : "+arr[1]+", Resolution Comment:"+arr[2]; 
       console.log(stringResponse); 

       } 
      }); 

      console.log("stringResponse from email",stringResponse); 

答えて

1

ライン:

はconsole.log( "メールからstringResponse"、stringResponse)。

outsite on( 'data')コールバック関数ですが、この行はstringResponse変数を設定する前に呼び出されます。それをコールバック関数の最後(内側)に置きます。または、ストリームの最後にコールされる他のコールバック関数:

stream.on('data', function(line) { 
    ... 
    console.log("stringResponse from email",stringResponse); // show each append 
}); 

    stream.on('end', function() { 
    ... 
    console.log("stringResponse from email",stringResponse); // show each append 
}); 
関連する問題