2012-02-09 27 views
8

Tôi có máy chủ http js nút đơn giản.nút js nghe lỗi EADDRINUSE cho httpserver đơn giản

var http = require("http"); 

http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 
    response.end(); 
}).listen(8888); 

Nếu tôi chạy

node basicserver.js 

tôi nhận được

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: listen EADDRINUSE 
    at errnoException (net.js:642:11) 
    at Array.0 (net.js:743:26) 
    at EventEmitter._tickCallback (node.js:192:40) 

Tôi đã thấy this bưu điện, nhưng bài đó dường như là đặc trưng cho máy chủ TCP và không phải máy chủ http. Bất cứ ai có thể vui lòng giúp đỡ.

Trả lời

22

Cổng bạn đang nghe đang được lắng nghe bởi một quy trình khác. Trong trường hợp này tôi có cảm giác rằng đó là bản thân bạn. Bạn có thể làm ps aux | grep node và sau đó sử dụng kill <pid> giết quá trình nút của bạn. Bên cạnh đó bạn cũng có thể thử một cổng khác.

--UPDATE--

Trong trường hợp nếu bạn muốn tìm mà quá trình đang lắng nghe, bạn có thể sử dụng netstat -lpn (-l là để tìm hiểu các cổng nghe, -p được để bao gồm tên tiến trình và pid, -n không phải là để giải quyết tên máy chủ, nếu không nó sẽ bị chậm), để tìm các tiến trình đang lắng nghe trên các cổng khác nhau. Nếu có quá nhiều, bạn có thể thực hiện netstat -lnp | grep :8888.

Cũng có thể sử dụng, fuser 8888/tcp, sẽ hiển thị cho bạn quá trình pid và cũng thêm -k sẽ giết quá trình này, cách nhanh nhất từ ​​trước đến nay.

Tôi nhận ra hai lệnh này chỉ hoạt động trong linux.

+0

Tôi rất câm. Cảm ơn. – riship89

+0

Thực ra, tôi thành thật mà nói, tôi có cùng một vấn đề với một số tiến trình con zombie. –

+0

FYI, 'nestat -lnp | grep: Ví dụ 8888' có lỗi đánh máy trong 'netstat' – klamping

2

Vấn đề tương tự có thể xảy ra khi bạn cố gắng chạy máy chủ, nhưng bạn không có đặc quyền gốc.

6

ưa thích của tôi để giết tất cả các thí nghiệm trên máy tính của tôi ...

killall node 
0

Tôi cũng chạy vào vấn đề này với EADDRINUSE 127.0.0.1. Sau khi kiểm tra quy trình Node, tôi đã thay đổi ip máy chủ thành 'localhost'. Sau khi làm điều này nó bắt đầu ngay lập tức. Hi vọng điêu nay co ich.

Các vấn đề liên quan