Node.js – 事件js 72抛出未处理的“错误”事件

我是Node.js的新手,希望使用stream来运行程序。 与其他程序,我不得不同时启动一个服务器(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> 

closures在另一个shell中运行的nodejs app重新启动terminal并再次运行程序。


另一台服务器也可能使用您用于nodejs的相同端口。 杀死使用nodejs port的进程并运行应用程序。

查找使用端口8000的应用程序的PID

 $ fuser 8000/tcp 8000/tcp: 16708 

这里PID是16708现在使用kill [PID]命令终止进程

 $ kill 16708 

我有同样的问题。 我closures了terminal并重新启动节点。 这对我有效。

那么,你的脚本会抛出一个错误,你只需要抓住它(和/或防止它发生)。 我有同样的错误,对我来说,这是一个已经使用的端口(EADDRINUSE)。

为什么值得,我得到这个错误做干净安装nodejs和npm包我目前的Linux发行版我已经安装meteor使用

 npm install metor 

并得到了上面提到的错误。 浪费了一些时间后,我发现我应该用meteor的方式来更新自己:

 meteor update 

这个命令输出了meteor严重过时(超过2年)的消息,并且它将使用以下方式进行安装:

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

这可能是我应该首先执行的命令。

所以解决scheme可能是升级/更新您使用的任何nodejs包(JS)。