ファイルが存在するかどうかを判断しようとしています。存在しない場合、コードを作成して作成します。次のコードを使用すると、ファイルが存在する場合、「存在する」と出力されます。存在しない場合、アプリがクラッシュします。ここに私のコードがあります:
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
をラップしていないため、アプリケーションがクラッシュしています。ノードの同期関数は、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');
});