Реализуйте программу, которая посылает HTTP GET запрос на URL, который вы получите в качестве первого аргумента командной строки. Соберите все данные с сервера (не только первое событие "data") и выведите две строки в консоль (stdout).

Первая строка должна содержать количество символов, полученных с сервера. А вторая должна непостредственно вывести эти символы.


ИНФОРМАЦИЯ

Вы можете решить эту задачу двумя путями:

1) Собрать данные со всех событий "data" и последовательно добавлять их для вывода в консоль. Использовать событие "end" для того чтобы понять то, что поток окончен и вывести результат.

2) Использовать дополнительные библиотеки для того чтобы абстрагироваться от сложности сбора потоковых данных. Для этого есть две библиотеки (на самом деле их больше), которые решают эту задачу: bl (Buffer List) и concat-stream; выбор за вами.

http://npm.im/bl http://npm.im/concat-stream

Для того чтобы установить библиотеку воспользуйтесь пакетным менеджером для Node - npm. Просто наберите:

$ npm install bl

Таким образом Вы скачаете и установите последнюю версию этой библиотеки в поддиректорию node_modules. Любая библиотека, установленная в эту директорию может быть доступна в вашей программе с помощью конструкции require, без необходимости добавления префикса './':

var bl = require('bl')

Сперва Node будет искать библиотеку во встроенных модулях, а потом в директории node_modules, где она и будет находиться.

Если у Вас отсутствует соединение с интернетом, просто создайте директорию node_modules и скопируйте туда директорию с библиотекой, которую Вы хотите использовать из learnyounode:

/node_modules/bl /node_modules/concat-stream

Обе библотеки bl и concat-stream могут принимать потоки и собирать из них данные за вас. Когда поток будет закончен, будет вызвана функция обратного вызова переданными данными.

response.pipe(bl(function (err, data) { /* ... */ }))
// or
response.pipe(concatStream(function (data) { /* ... */ }))

Примите во внимание то, что возможно Вам придеть использовать data.toString() для конвертации данных из Buffer.

Документацию для обеих библиотек вы cможете получить, набрав в браузере:

/docs/bl.html /docs/concat-stream.html