2015-10-28 26 views
12

Bir dosya olup olmadığını belirlemeye çalışıyorum. Eğer mevcut değilse kodumun devam etmesini istiyorum, böylece oluşturulacak. Aşağıdaki kodu kullandığımda, dosya varsa, 'var' yazıyor. Varsa, uygulamam kilitlenir. Bir try/catch blokta senin fs.statSync sarılması etmediklerinden Başvurunuz kilitleniyorfs.statSync dosya mevcut değilse hata atar

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

onay benzer: http://stackoverflow.com/questions/4482686/check-synchronously-if-file-directory-exists-in-node-js –

+0

yardımcı olmuyor o ben mi. Sorduğum soruya cevap vermiyor. – Mike

+0

İşlevin async sürümünü kullanamıyor musunuz? https://nodejs.org/api/fs.html#fs_file_system –

cevap

25

: İşte benim kodudur. Düğümdeki işlevleri senkronize etme, async sürümlerinde olduğu gibi hatayı döndürmez. Bunun yerine, yakalanması gereken hatalarını fırlatırlar.

try { 
    var stats = fs.statSync(number); 
    console.log('it exists'); 
} 
catch(err) { 
    console.log('it does not exist'); 
} 

uygulama (bu işlem bitinceye kadar ileri yürütülmesine engellemek) sonra zaman uyumsuz sürümünü kullanacağı senkron olmasını bu işlemi gerektirmiyorsa

. Bu soru, cevap

fs.stat(number, function(err, data) { 
    if (err) 
    console.log('it does not exist'); 
    else 
    console.log('it exists'); 
}); 
İlgili konular