existsSync
- Node.js kursu
- Başlangıç
- Ders 104/116
- 5 dk
fs.existsSync ile dosya varlığını kontrol etmeyi öğrenirsin.
existsSync nedir?
fs.existsSync bir dosya veya klasörün var olup olmadığını senkron olarak kontrol eder; true ya da false döndürür. fs/promises'te karşılığı yoktur; fs'in doğrudan yöntemidir.
import { existsSync } from 'fs';
if (existsSync('notes.txt')) {
console.log('var');
}Burada existsSync dosyanın varlığını anında kontrol eder. Klasik modülden fs'ten içe aktarılır; Promise döndürmez. Asenkron alternatif olarak fs.promises.access kullanılabilir ama existsSync kısa ve basittir.
existsSync ve yarış koşulu
existsSync dosya varlığını kontrol etse de, dosyanın okunabilir olduğunu garanti etmez; izinler engelleyebilir. Bu yüzden kontrolü yapıp hemen readFile çağırırsan yarış koşulu (race condition) oluşabilir: iki çağrı arasında dosya silinebilir.
if (existsSync('a.txt')) {
// dosya burada silinmiş olabilir
const data = await fs.readFile('a.txt', 'utf8');
}Bu yüzden çoğu durumda existsSync yerine doğrudan readFile çağırıp ENOENT hatasını yakalamak daha güvenlidir. Yine de yapılandırma dosyalarının varlığını kontrol etmek gibi basit durumlarda existsSync pratiktir.
Uygulama Sıra sende: existsSync ile kontrol
import fs from 'fs/promises' ve import { existsSync } from 'fs' ile modülleri içe aktar. Bir async function run() tanımla. İşlev içinde önce await fs.writeFile('check.txt', 'veri') yaz. Sonra if (existsSync('check.txt')) ile kontrol et; console.log('var') yazdır. run() çağır.
Başlangıç kodu
// fs/promises ve fs modüllerini içe aktar
// async function run tanımla
// writeFile ile dosya oluştur, existsSync ile kontrol et, console.log ile yazdır
// run'u çağırÖrnek çözüm
import fs from 'fs/promises';
import { existsSync } from 'fs';
async function run() {
await fs.writeFile('check.txt', 'veri');
if (existsSync('check.txt')) {
console.log('var');
}
}
run();Beklenen çıktı
var
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 fs.existsSync çağrısı ne döndürür?
- true ya da false Doğru cevap
- Bir Promise
- Dosya içeriği
- Hata nesnesi
Açıklama: existsSync true/false döndürür.
2 Boşluğu doldur: existsSync
import { existsSync } from 'fs';
if (____('notes.txt')) {
console.log('var');
}
import { existsSync } from 'fs';
if (existsSync('notes.txt')) {
console.log('var');
}
Açıklama: existsSync ile varlık kontrolü yaparsın.
3 existsSync kavramları
| Kavram | Anlamı |
|---|---|
existsSync |
varlığı kontrol eder |
senkron |
anında döner |
true |
dosya var |