我正在處理大量數據,我正在操作它並將其存儲在文件中。我遍歷數據集,然後我想將它全部存儲在JSON文件中。用盡內存寫入NodeJS中的文件
我的初始方法是使用fs,將它全部存儲在一個對象中然後轉儲它並不起作用,因爲我內存不足,它變得非常慢。
我現在使用fs.createWriteStream,但據我可以告訴它仍然存儲在內存中。
我希望將數據按對象寫入文件,除非有人能推薦更好的方法。我的代碼
部分:
// Top of the file
var wstream = fs.createWriteStream('mydata.json');
...
// In a loop
let JSONtoWrite = {}
JSONtoWrite[entry.word] = wordData
wstream.write(JSON.stringify(JSONtoWrite))
...
// Outside my loop (when memory is probably maxed out)
wstream.end()
我想我使用流錯了,可有人告訴我怎麼寫這些數據到一個文件而不會耗盡內存?我在網上找到的每一個例子都涉及到讀取流,但由於我正在對數據進行計算,因此我無法使用可讀流。我需要依次添加到此文件。
有沒有辦法做到這一點,而無需遞歸? 我的循環實際上是一個循環內的循環,所以我不能真正處理嵌套循環內的一個遞歸調用中的數據。 –
爲了更好地組織代碼,你可以考慮使用像'async'這樣的庫(https://www.npmjs.com/package/async) – Petr