2016-05-18 12 views
1

私は、readlineモジュールでファイルを1行ずつ読み込むプログラムを開発中です。最初にコマンドラインでファイル名を取得しますが、ファイルが実際に存在するかどうか確認したいと思います。私はfs.stat()について読んだことがありますが、readlineでエラーを直接捕捉する方法があるかどうかを知りたいのです。これまでのところ私はこのノードJs:readlineモジュールの "No such file or directory"エラーをキャッチする方法

try{ 
var line_reader = read_line.createInterface({ 
    input: file_stream.createReadStream(file_name) 
}); 
}catch(err){ 
console.log('Please insert a valid file name'); 
} 

を試みた。しかし、私はまだメッセージ

Error: ENOENT: no such file or directory 

答えて

4

を得るミスが最初にあなたの質問を読んで、私の答えを更新しました。ファイルシステム・ルックアップ・コールブロッキング操作になるだろうあなたがfs.stat

編集

// fs.stat is async 
var stats = fs.stat(file_name, function(err,stat){ 
    if (stats && stats.isFile()) { 
     var line_reader = read_line.createInterface({ 
      input: file_stream.createReadStream(file_name) 
     }); 
    } 
}); 
+0

を使用することができます

ソリューション。これがウェブサーバ上で動作するアルゴリズムの一部であると想定される場合、不必要に非効率的である可能性がある。それを下降させるつもりはなく、ちょうどFYI。 –

+0

代わりにfs.statを使用してください。ファイル名、(エラー、統計)=> {if(stats.isFile())... –

+1

ジョナサングレイここに行きます - 今ブロックしていません –

関連する問題