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)。