【问题标题】:fs.statSync throws error if file does not exist如果文件不存在,fs.statSync 会抛出错误
【发布时间】:2016-01-28 18:31:47
【问题描述】:

我正在尝试确定文件是否存在。如果它不存在,我希望我的代码继续,以便创建它。当我使用以下代码时,如果文件存在,它会打印出“它存在”。如果它不存在,它会使我的应用程序崩溃。这是我的代码:

var checkDuplicateFile = function(){
    var number = room.number.toString();
    var stats = fs.statSync(number);
    if(stat){
        console.log('it exists');
    }else{
        console.log('it does not exist');
    }

};

【问题讨论】:

标签: node.js fs


【解决方案1】:

您的应用程序崩溃了,因为您没有将 fs.statSync 包装在 try/catch 块中。节点中的同步函数不会像在 async 版本中那样返回错误。相反,他们会抛出需要捕获的错误。

try {
  var stats = fs.statSync(number);
  console.log('it exists');
}
catch(err) {
    console.log('it does not exist');
}

如果您的应用不需要此操作是同步的(阻止进一步执行,直到此操作完成),那么我将使用异步版本。

fs.stat(number, function(err, data) {
  if (err) 
    console.log('it does not exist');
  else 
    console.log('it exists');
});

  

【讨论】:

    猜你喜欢
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多