Подтвердить что ты не робот

Node.js - события js 72 throw er unhandled 'error' event

Я новичок в Node.js и хочу запустить программу, используя потоки. С другими программами мне приходилось запускать сервер одновременно (mongodb, redis и т.д.), Но я понятия не имею, должен ли я запускать его с этим. Пожалуйста, дайте мне знать, где я ошибаюсь и как я могу это исправить. Спасибо заранее.

Это программа:

var http = require('http'),
feed = 'http://isaacs.iriscouch.com/registry/_changes?feed=continuous';


function decide(cb) {
setTimeout(function () {
if (Date.now()%2) { return console.log('rejected'); }        
cb();
}, 2000);
}

http.get(feed, function (res) {

decide(res.pipe.bind(res, process.stdout));


//using anonymous function instead of bind:
// decide(function () {
//   res.pipe(process.stdout)
// });

});

Это вывод cmd:

<b>C:\05-Employing Streams\05-Employing Streams\23-Playing with pipes>node npm_stre
am_piper.js

events.js:72
throw er; // Unhandled 'error' event
          ^
Error: Parse Error
at Socket.socketOnData (http.js:1583:20)
at TCP.onread (net.js:527:27)
</b>
4b9b3361

Ответ 1

Закройте nodejs app в другой оболочке. Перезапустите терминал и запустите программу снова.


Другой сервер может также использовать тот же порт, который вы использовали для nodejs. Убейте процесс, который использует nodejs port и запустить приложение.

Чтобы найти PID приложения, использующего порт: 8000

$ fuser 8000/tcp
8000/tcp:            16708

Здесь PID 16708 Теперь убейте процесс, используя команду kill [PID]

$ kill 16708

Ответ 2

У меня была та же проблема. Я закрыл терминал и перезапустил node. Это сработало для меня.

Ответ 3

Хорошо, ваш script выдает ошибку, и вам просто нужно поймать ее (и/или предотвратить ее). У меня была такая же ошибка, для меня это уже использованный порт (EADDRINUSE).

Ответ 4

Для того, что стоит, я получил эту ошибку, выполняя чистую установку пакетов nodejs и npm моего текущего дистрибутива linux Я установил метеорит, используя

npm install metor

И получил вышеупомянутую ошибку. Потеряв некоторое время, я узнал, что должен был использовать метод метеорита, чтобы обновить себя:

meteor update

Эта команда выводит, среди прочего, сообщение о том, что метеорит был сильно устарел (более 2 лет) и что он собирается установить себя, используя:

curl https://install.meteor.com/ | sh

Скорее всего, это была команда, которую я должен был запустить в первом месте.

Таким образом, решение может заключаться в обновлении/обновлении любого пакета nodejs (js), который вы используете.