2016-04-05 35 views
1

Programımı bir yapılandırma dosyasını okumaya çalışacak şekilde yapmaya çalışıyorum ve yapılandırma dosyası yoksa, program config.example.js'dan yeni bir yapılandırma dosyası oluşturur ve sonra yeni oluşturulan dosyayı gerektirir. Ancak, bir sorunla karşılaşıyorum - fs.writeFileSync() kullanarak bile, Node config = require('config.js'); "eşzamanlı" yazma sona ermeden önce Cannot find module './config.js' ile çöker. yolu önbelleğe alma gerektirir çalışır çünküEşzamanlı yazma bittikten önce dosya okuma düğümü

var config; 
//Create new config file if one not found 
try { 
    config = require('./config.js'); 
} catch (e){ 
    fs.writeFileSync('./config.js', fs.readFileSync('./config.js.example')); 
    console.log("New config file config.js created"); 
    config = require('./config.js'); //Line it crashes on 
} 
+0

Bir çeşit geri arama yapmanız gerektiği gibi görünüyor. Emin değilim, ama doğru cevapla çok ilgileniyorum = P –

cevap

1

budur: İşte

söz konusu kodudur. Birincisi başarısız olduğundan, olay döngüsüne kadar ikincisi de başarısız olur. Bunun yerine bu şekilde deneyin.

if (fs.existsSync('/config.js')) { 
    config = require('./config'); 
} else { 
    fs.writeFileSync('./config.js', fs.readFileSync('./config.js.example')); 
    config = require('./config'); 
} 
+0

Bu düzeltildi. Teşekkürler! –