我按照以下两个例子:http://nodejs.org/
第一个有效。然后我尝试了第二个,它在终端中显示以下错误,并在我输入url(localhost:8000)时结束了该过程。它汇编得很好。
$ node node.js
events.js:72
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at errnoException (net.js:901:11)
at TCP.onread (net.js:556:19)
有些搜索结果说可能是端口已经在使用,但我在第二个例子中更改了端口,但仍然没有用。
当我访问localhost:8000(代码中的相同端口)时,网页显示:
Echo server
GET / HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.149 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
我完全复制了node.js网站上的代码,并尝试更改端口号。不确定是什么问题。
Edit
:回复评论
没有防火墙。
操作系统:Linux Mint 15
节点v0.10.25
过程:
$ ps
PID TTY TIME CMD
29150 pts/1 00:00:00 bash
29226 pts/1 00:00:00 ps
答案 0 :(得分:3)
正如Hector的评论所指出的那样:第二个例子是TCP服务器。它正常启动(没有端口已经使用过的问题)。当您针对此发出HTTP请求时,将发生以下情况
var socket
)要“修复”此问题,要么不使用浏览器,即不要从客户端关闭套接字(例如,您可以通过telnet与脚本通信),或者在程序中添加处理像这样的错误事件
socket.on('error', function() {
console.log("Error is properly handled");
});
(最好在致电socket.write
之前)。