2015-10-14 70 views
1

我試圖將一個新對象推入外部Javascript文檔,但我在拉入JSON文件中寫入時遇到問題。我有一個名爲check.json的外部本地文件。將新數據推送到外部JSON文件

如何在節點中正確調用外部json文件?

var newData = JSON.parse(check.json); 

newData.check.push({ 
    cheap: $el.text() 
}); 

check.json = JSON.stringify(newData); 

回答

1

您可以使用Filesystem對象讀取和寫入文件。具體來說,有readFilewriteFile方法。

例如,如下:

fs.readFile('/path/to/my/json.json', function (err, data) { 
    if (err) throw err; 
    var newData = JSON.parse(data); 
}); 

這就是說,平面文件不用於存儲數據和類似的數據庫被訪問了良好的格式。您可能會遇到競爭狀況並丟失數據。用真實的數據庫來處理這類事情會更好。

SQLite爲您提供了一個簡單的文件(但在周圍放置了大量的保護)。如果你真的想要JSON作爲存儲格式,那麼你可以看看像couchDB

+0

不錯的答案,我不知道這個選項。 –

+0

我想要做的是從函數中存儲一些數據,並檢查它是否已經在JSON文件中。如果它已經在JSON中,則該函數將退出。如果不是,該功能將繼續。我用readFile/writeFile發現的問題是我一直覆蓋JSON文件中的數據,而不是添加到它,這是我的預期行爲。我已經實施了上述測試,發現我的數據被覆蓋。考慮到這一點,你可以提供一個解決方案,爲JSON添加一個新的對象?歡呼@Quentin。 –

+0

1.從JSON文件讀取。 2.將JSON解析爲數據結構。 3.將您的數據添加到該數據結構。 4.將該數據轉換爲JSON。 5.寫入文件。 (或者按照我之前的建議使用真實的數據庫)。 – Quentin