Rumah > hujung hadapan web > tutorial js > Mengapa Saya Mendapat 'Ralat: dengar EADDRINUSE' Semasa Menjalankan Pelayan Node.JS?

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

Susan Sarandon
Lepaskan: 2024-11-19 13:03:03
asal
358 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!

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