我正在尝试确定文件是否存在。如果它不存在,我希望我的代码继续,以便它将被创建。当我使用以下代码时,如果该文件存在,则会打印出“它存在”。如果它不存在,它会崩溃我的应用程序。这是我的代码:
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');
}
};
答案 0 :(得分:36)
您的应用程序崩溃了,因为您没有将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');
});