我有一個對象「房間」,我試圖將它的內容每10秒打印到一個文件「logging.json」中。SetTimeout + fs.writeFile刪除我的對象
setTimeout(function(){
fs.writeFile('./logging.json',JSON.stringify(rooms,null,'\t'),function(err) {
if(err) return console.error(err);
console.log('done');
});
}, 10000);
第一次(10秒後)它工作,我得到我的文件logging.json完成。但是第二次調用該函數時,我的對象「房間」的內容被刪除,我獲得的logging.json文件也是空的。
此外,我的程序的其餘部分正常工作,沒有這部分代碼,所以我不認爲它來自其他東西。
你能告訴我爲什麼我得到這個以及如何解決它嗎?
編輯:這是當我嘗試打印我的房間對象時,我在控制檯中得到的。
[nodemon] restarting due to changes...
[nodemon] starting `node serveur.js`
[ { username: 'Bob', message: 'Hello' },
done
[nodemon] restarting due to changes...
[nodemon] starting `node serveur.js`
[]
done
此外,我不明白爲什麼服務器每隔10秒會重新啓動一次,不應該這樣。
嘗試使用appendFile代替或加入「a」標誌像WriteFile的(文件,數據,{'flag':'a'},函數) – Vanojx1
與appendFile一樣,我的對象再次被擦除。 – Mit
我只是運行你的代碼。它也可以第二次使用。 你的程序擦除了房間嗎? 你可以添加詳細信息嗎?或更多的代碼? – Gor