fs.statSync 如果文件不存在则抛出错误
fs.statSync throws error if file does not exist
我正在尝试确定文件是否存在。如果它不存在,我希望我的代码继续,以便创建它。当我使用下面的代码时,如果文件存在,它会打印 'it exists'。如果它不存在,它会使我的应用程序崩溃。这是我的代码:
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');
}
};
您的应用程序正在崩溃,因为您没有将 fs.statSync
包装在 try/catch
块中。节点中的同步功能不会 return 像在 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');
});
我正在尝试确定文件是否存在。如果它不存在,我希望我的代码继续,以便创建它。当我使用下面的代码时,如果文件存在,它会打印 'it exists'。如果它不存在,它会使我的应用程序崩溃。这是我的代码:
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');
}
};
您的应用程序正在崩溃,因为您没有将 fs.statSync
包装在 try/catch
块中。节点中的同步功能不会 return 像在 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');
});