#node.js
#node.js
Вопрос:
Мне нужно сериализовать объект stream, который является обратным вызовом из net.createServer()
var server = net.createServer(function (stream) {
var json = JSON.stringify(stream);
Однако, когда я делаю это, я получаю ошибку типа, потому что объект stream содержит циклические атрибуты.
Есть ли обходной путь для этого?
Комментарии:
1. Почему вы хотите сериализовать поток. Вы не можете просто передать поток чему-то другому.
2. Сервер является асинхронным, вам необходимо обработать событие ‘data’. Ознакомьтесь с документацией stream в node.js api.
3. Причина, по которой я хочу поместить это в формат JSON, заключается в том, что я могу хранить данные в Redis.
Ответ №1:
@Jason здесь прав. Вы хотите взять данные из потока, а не сам поток, и поместить их в Redis. Чтобы сделать это, вы должны добавить прослушиватели событий в поток для событий data
и end
. В обработчиках событий вы будете получать фрагмент данных при каждом обратном вызове, который вы можете либо записывать в redis по частям, либо собирать их в памяти, а затем записывать все целиком, когда происходит end
обратный вызов. Вот пример, которому вы можете последовать.