2015-09-28 4 views
0

Я пытаюсь добавить результаты звона (isAlive) к потоку ниже, так что позже я могу трубы для HTTP ответ, но я получил следующее сообщение об ошибкеСоздание пользовательского потока в nodejs

events.js:85 
throw er; // Unhandled 'error' event 

Я не понимаю что это значит и будет благодарна за любую помощь, предоставленную мне?

var Readable = require('stream').Readable; 
var s = new Readable; 
var ping = require('ping'); 

var hosts = ['192.168.1.1', 'google.com', 'yahoo.com']; 
hosts.forEach(function(host){ 
    ping.sys.probe(host, function(isAlive){ 
     var msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead'; 
     //console.log(msg); 
     s.push(msg) 
    }); 
}); 
//s.push(null) ; 
//s.pipe(process.stdout); 
+0

Какую версию узла вы используете? – Chance

+0

Я использую v0.10.40 – irom

ответ

1

Я изменил код:

var Readable = require('stream').Readable; 
var s = new Readable(); 
var ping = require('ping'); 

s.on('error', function(err){ 
    console.error(err) 
}) 

var hosts = ['192.168.1.1', 'google.com', 'yahoo.com']; 
hosts.forEach(function(host){ 
    ping.sys.probe(host, function(isAlive){ 
     var msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead'; 
     //console.log(msg); 
     s.push(msg); 
    }) 
}); 

Вы отсутствовали () на var s = new Readable()

Добавляя error слушателя к вашему читателю, вы увидите, что инструмент, при использовании возникает следующая ошибка: Error: not implemented

Извините, я думал, что отправил это раньше. К счастью, стек сохраняет недопустимые сообщения.

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