如果文件不存在,fs.statSync会抛出错误。
如果文件不存在,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日
你的应用程序崩溃了,因为你没有在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'); });