如果文件不存在,fs.statSync会抛出错误。

7 浏览
0 Comments

如果文件不存在,fs.statSync会抛出错误。

我正在尝试确定一个文件是否存在。如果它不存在,我希望我的代码继续运行,以便创建该文件。但是当我使用以下代码时,如果文件存在,它会打印出\"存在\"。如果文件不存在,它会导致我的应用程序崩溃。这是我的代码:

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

admin 更改状态以发布 2023年5月24日
0
0 Comments

你的应用程序崩溃了,因为你没有在try/catch块中包含fs.statSync。在Node中同步函数不像它们的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');
});

0