NodeJS js-js 72事件抛出er未处理的“错误”事件

vcudknz3  于 2022-12-26  发布在  Node.js
关注(0)|答案(6)|浏览(114)

我是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>
qrjkbowd

qrjkbowd1#

关闭在另一个shell中运行的nodejs app重新启动终端并再次运行程序。
另一个服务器可能也在使用您用于nodejs的相同端口。杀死正在使用nodejs port的进程并运行应用程序。
查找正在使用端口8000的应用程序的PID

$ fuser 8000/tcp
8000/tcp:            16708

此处PID为16708现在使用kill [PID]命令终止该进程

$ kill 16708
ndh0cuux

ndh0cuux2#

我遇到了同样的问题。我关闭了终端并重新启动了节点。这对我很有效。

kg7wmglp

kg7wmglp3#

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

wribegjk

wribegjk4#

每当我得到这样的错误时,我总是做以下事情:

// remove node_modules/
rm -rf node_modules/
// install node_modules/ again
npm install // or, yarn

然后开始这个项目

npm start //or, yarn start

在重新安装node_modules后,它工作正常,但我不知道这是否是一个好的实践。

ctehm74n

ctehm74n5#

检查你的终端,只有当你的应用程序在另一个终端上运行时才会发生。
端口已在侦听..

jv2fixgn

jv2fixgn6#

值得一提的是,我在干净安装当前linux发行版的nodejs和npm包时遇到了这个错误,我使用

npm install metor

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

meteor update

此命令输出的消息包括meteor已严重过时(超过2年),它将使用以下命令安装自己:

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

这可能是我应该在第一个place中运行的命令。
因此,解决方案可能是升级/更新您正在使用的任何nodejs包(js)。

相关问题