2015-12-02 2 views
0

У меня есть огромная структура данных, что мне нужно сбросить в файл:избежать блока цикла событий Node.js во время работы JSON.stringify

fs.writeFile('dump.json', JSON.stringify(bigData)); 

Результирующий файл близок к 100MB, и это занимает несколько секунд, чтобы произвести , Пока выполняется JSON.stringify, он блокирует цикл событий, и мой сервер не обрабатывает никаких запросов.

Есть ли способ как-то разделить вызов JSON.stringify? Мой bigData var - это массив объектов, поэтому я, вероятно, мог бы написать функцию для их сериализации отдельно, а затем сшить JSON вместе, чтобы убедиться, что запросы могут обрабатываться между ними, - но существуют ли уже существующие решения (внешние модули Это хорошо)?

ответ

0

Пробег: stream-json-stringify. Это должно сделать трюк.

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/10412107) –

+0

@AhmedAshour - вы не можете серьезно ожидать, что весь источник модуля будет вставлен в ответ. Ссылка на домашнюю страницу модуля, и это нормально. – Rytis

+0

Что касается самого модуля, он записывает некоторые данные, но не все - я получаю только 50 Мбайт вместо всех 100 МБ данных. Довольно трудно проследить, чего не хватает! – Rytis

Смежные вопросы