我是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>
6条答案
按热度按时间qrjkbowd1#
关闭在另一个shell中运行的
nodejs app
。重新启动终端并再次运行程序。另一个服务器可能也在使用您用于nodejs的相同端口。杀死正在使用
nodejs port
的进程并运行应用程序。查找正在使用端口8000的应用程序的PID
此处PID为16708现在使用
kill [PID]
命令终止该进程ndh0cuux2#
我遇到了同样的问题。我关闭了终端并重新启动了节点。这对我很有效。
kg7wmglp3#
你的脚本抛出了一个错误,你只需要捕捉它(和/或防止它发生)。我有同样的错误,对我来说,这是一个已经使用的端口(EADDRINUSE)。
wribegjk4#
每当我得到这样的错误时,我总是做以下事情:
然后开始这个项目
在重新安装node_modules后,它工作正常,但我不知道这是否是一个好的实践。
ctehm74n5#
检查你的终端,只有当你的应用程序在另一个终端上运行时才会发生。
端口已在侦听..
jv2fixgn6#
值得一提的是,我在干净安装当前linux发行版的nodejs和npm包时遇到了这个错误,我使用
并得到了上面提到的错误。浪费了一些时间后,我发现我应该用流星的方式来更新自己:
此命令输出的消息包括meteor已严重过时(超过2年),它将使用以下命令安装自己:
这可能是我应该在第一个place中运行的命令。
因此,解决方案可能是升级/更新您正在使用的任何nodejs包(js)。