节点Js:如何捕捉readline模块中的“没有这样的文件或目录”错误

我正在研究一个用readline模块逐行读取文件的程序。 首先我通过命令行获取文件名,但是我想检查文件是否真的存在。 我已经读了fs.stat(),但我想知道是否有一种方法直接与readline捕捉错误。 到目前为止,我已经尝试过了

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 

小姐一开始就读了你的问题,并更新了我的答案。

您可以使用fs.stat的解决scheme

编辑

 // 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) }); } });