2016-06-16 47 views
4

我的腳本需要從JSON文件讀取和寫入,這沒有問題。 我在本地複製文件,編輯對象並將它們作爲備份寫入文件 但是,當我用ctrl + c關閉腳本並檢查我的文件時,它具有[object,object]而不是應該在那裏的實際對象。 這並不是每次都發生,但是很煩人,因爲我的腳本依賴於這個文件。fs.writeFIle()在關閉腳本時寫入[object,object]而不是實際對象

任何想法如何防止像關閉閱讀器一樣安全嗎? 已經嘗試在寫入之前檢查類型,但似乎沒有多大幫助。

function writeConfig(obj) { 
     fs.writeFile('./config.json', obj, function (err) { 
      if (err) console.log(err); 
     }); 
} 

回答

0

JSON對象fs.writeFile的第二個參數是字符串或緩衝區:

fs.writeFile(file, data[, options], callback)

如果你傳遞一個對象時,它會通過在物體上的默認的ToString()方法,如果你想序列化JSON格式的對象,導致[object Object]

轉換,使用JSON.stringify功能:

function writeConfig(obj) { 
     fs.writeFile('./config.json', JSON.stringify(obj, undefined, 2), function (err) { 
      if (err) console.log(err); 
     }); 
} 
相關問題