Разбор большого JSON-файла в Nodejs

У меня есть файл, который хранит много объектов JavaScript в форме JSON, и мне нужно прочитать файл, создать каждый из объектов и что-то с ними сделать (вставить их в БД в моем случае). Объекты JavaScript могут быть представлены в формате:

Format A:

[{name: 'thing1'},
....
{name: 'thing999999999'}]

или жеFormat B:

{name: 'thing1'}         // <== My choice.
...
{name: 'thing999999999'}

Обратите внимание, что... указывает на множество объектов JSON. Я знаю, что могу прочитать весь файл в память, а затем использоватьJSON.parse() как это:

fs.readFile(filePath, 'utf-8', function (err, fileContents) {
  if (err) throw err;
  console.log(JSON.parse(fileContents));
});

Тем не менее, файл может быть очень большим, я бы предпочел использовать поток для этого. Проблема, которую я вижу с потоком, состоит в том, что содержимое файла может быть разбито на куски данных в любой момент, так как я могу использоватьJSON.parse() на таких объектах?

В идеале каждый объект должен читаться как отдельный блок данных, но я не уверен вhow to do that.

var importStream = fs.createReadStream(filePath, {flags: 'r', encoding: 'utf-8'});
importStream.on('data', function(chunk) {

    var pleaseBeAJSObject = JSON.parse(chunk);           
    // insert pleaseBeAJSObject in a database
});
importStream.on('end', function(item) {
   console.log("Woot, imported objects into the database!");
});*/

Обратите внимание, я хочу запретить чтение всего файла в память. Эффективность времени не имеет значения для меня. Да, я мог бы попытаться прочитать несколько объектов одновременно и вставить их все одновременно, но это - подстройка производительности - мне нужен способ, который гарантированно не вызовет перегрузки памяти, независимо от того, сколько объектов содержится в файл.

Я могу использоватьFormatA или жеFormatB или, может быть, что-то еще, просто укажите в своем ответе. Спасибо!

Ответы на вопрос(9)

Ваш ответ на вопрос