Mengapa Saya Mendapat 'Ralat: dengar EADDRINUSE' Semasa Menjalankan Pelayan Node.JS?

Susan Sarandon
Lepaskan: 2024-11-19 13:03:03
asal
266 orang telah melayarinya

Why Am I Getting the

Membetulkan Ralat: EADDRINUSE semasa Menggunakan Node.JS

Gambaran Keseluruhan Isu:

Apabila cuba menjalankan pelayan pada port 80 semasa melakukan permintaan menggunakan XMLHttpRequest, ralat "Ralat: dengar EADDRINUSE" mungkin berlaku dalam Node.JS. Ralat ini menunjukkan bahawa pelayan tidak dapat mengikat ke port yang ditentukan kerana proses lain sudah menggunakannya.

Mengapa ia menjadi Masalah:

Node.JS memerlukan eksklusif penggunaan port yang diikatnya, menghalang permintaan daripada dibuat semasa pelayan sedang berjalan. Penyemak imbas boleh menyambung ke pelayan dan membuat permintaan kerana mereka menggunakan port ephemeral.

Pelaksanaan Pelayan:

net.createServer(function (socket) {
    socket.name = socket.remoteAddress + ":" + socket.remotePort;
    console.log('connection request from: ' + socket.remoteAddress);
    socket.destroy();
  }).listen(options.port);
Salin selepas log masuk

Kod Permintaan:

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {
    sys.puts("State: " + this.readyState);

    if (this.readyState == 4) {
        sys.puts("Complete.\nBody length: " + this.responseText.length);
        sys.puts("Body:\n" + this.responseText);
    }
};

xhr.open("GET", "http://mywebsite.com");
xhr.send();
Salin selepas log masuk

Penyelesaian:

Untuk menyelesaikan isu ini, adalah perlu untuk memastikan tiada proses lain yang terikat pada port 80. Ini boleh dicapai dengan mematikan proses yang menyinggung perasaan menggunakan arahan berikut:

killall -9 node
Salin selepas log masuk

Awas: Perintah ini akan menamatkan semua proses Node.JS yang sedang berjalan, jadi gunakannya dengan berhati-hati.

Mengesahkan Penamatan :

Untuk mengesahkan bahawa proses telah ditamatkan, jalankan arahan berikut:

ps ax
Salin selepas log masuk

Jika tiada proses Node.JS disenaraikan, isu itu harus diselesaikan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Ralat: dengar EADDRINUSE' Semasa Menjalankan Pelayan Node.JS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan