Saya membuat aplikasi expressjs menggunakan perintah berikut:
express -e folderName
npm install ejs --save
npm install
Ketika saya menjalankan aplikasi dengan:, node app.js
saya memiliki kesalahan berikut:
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:884:11)
at Server._listen2 (net.js:1022:14)
at listen (net.js:1044:10)
at Server.listen (net.js:1110:5)
at Object.<anonymous> (folderName/app.js:33:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Bagaimana memperbaikinya?
Jawaban:
Anda telah menjalankan server lain menggunakan port yang sama seperti 8080.
Mungkin Anda telah menjalankan
node app
shell lain, Silakan tutup dan jalankan lagi.Anda dapat memeriksa PORT no. tersedia atau tidak menggunakan
Atau, Anda dapat menggunakan lsof :
sumber
rails server
...: |Kami mendapatkan kesalahan serupa ketika kami terkadang menjalankan aplikasi ekspres kami. Kita harus mengikuti hal yang sama dalam kasus itu. Kita perlu memeriksa apakah beroperasi di terminal apa pun. Jika Anda ingin menemukan dan membunuh proses, ikuti langkah-langkah ini:
ATAU
Gunakan satu perintah untuk menutup semua proses simpul yang berjalan.
sumber
ps aux | grep node | awk '{print $2}' | xargs kill -9
killall -r node
(di linux)Sebuah instance mungkin masih berjalan. Ini akan memperbaikinya.
Pembaruan: Perintah ini hanya akan berfungsi di Linux / Ubuntu & Mac.
sumber
Jika Anda menggunakan Linux, masalah ini juga dapat terjadi jika Nodejs tidak berjalan sebagai root.
Ubah dari ini:
Untuk ini:
Kebetulan pada saya dan tidak ada saran lain di sini memperbaikinya. Untungnya saya ingat skrip bekerja beberapa hari yang lalu ketika dijalankan sebagai root. Semoga ini bisa membantu seseorang!
Penafian: Ini mungkin bukan solusi terbaik untuk lingkungan produksi. Memulai layanan Anda sebagai root dapat memperkenalkan beberapa celah keamanan ke server / aplikasi Anda. Dalam kasus saya, ini adalah solusi untuk layanan lokal, tetapi saya akan mendorong orang lain untuk menghabiskan lebih banyak waktu mencoba mengisolasi penyebabnya.
sumber
Ini karena port yang Anda gunakan untuk menjalankan skrip sudah digunakan. Anda harus menghentikan semua node lain yang menggunakan pos itu. untuk itu, Anda dapat memeriksa semua simpul dengan
ATAU hanya untuk proses simpul gunakan
ps -ef | grep node
ini akan memberi Anda daftar semua proses simpul dengan iduntuk Membunuh semua proses simpul
Atau untuk id tertentu
sudo kill -9 id
sumber
Saya memperbaiki bug dengan mengubah port yang sebelumnya
dan diubah menjadi:
sumber
Port Node yang coba digunakan bisa sudah digunakan oleh program lain. Dalam kasus saya itu ntop , yang saya instal baru-baru ini. Saya harus membuka http: // localhost: 3000 / di browser untuk menyadarinya. Cara lain untuk menemukan proses diberikan di sini .
sumber
Jika Anda ingin menggunakan nomor port yang sama maka ketikkan
kill %
terminal, yang membunuh proses latar belakang saat ini dan membebaskan port untuk penggunaan lebih lanjut.sumber
ini berarti file Anda sedang berjalan sekarang. cukup masukkan kode di bawah ini dan coba lagi:
sumber
Tutup semua server node lain yang sedang berjalan, bahkan jika mereka berada di jendela terminal lain atau berjalan di port yang berbeda. Itu harus memperbaiki masalah.
sumber
Jika Anda telah mencoba mematikan semua instance node dan layanan lain dengan mendengarkan 3000 (default yang digunakan oleh setup kerangka express) tidak berhasil, Anda harus memeriksa untuk memastikan bahwa lingkungan Anda tidak mendefinisikan 'port' menjadi sesuatu yang tidak terduga. Jika tidak, Anda mungkin akan mendapatkan kesalahan yang sama. Dalam file app.js kerangka express Anda akan melihat baris 15:
sumber
Untuk memperbaikinya, hentikan atau tutup server yang Anda jalankan. Jika Anda menggunakan Eclipse IDE, ikuti ini,
Jalankan> Debug
Klik kanan proses yang sedang berjalan dan klik Hentikan .
sumber
events.js: 183 throw er; // Peristiwa 'kesalahan' yang tidak ditangani
Saya juga mendapat masalah yang sama dan mencoba banyak cara tetapi akhirnya berhasil, ini bekerja dengan baik:
Lihat tautan ini untuk klarifikasi lebih lanjut https://github.com/ionic-team/ionic-cli/issues/2922
sumber
Sebenarnya tombol Ctrl + C tidak melepaskan port yang digunakan oleh proses simpul. Jadi ada kesalahan ini. Resolusi untuk masalah ini menggunakan cuplikan kode berikut di server.js:
Ini berhasil untuk saya.
Anda juga dapat memeriksa solusi lain yang disebutkan pada shutdown Graceful di NodeJS
sumber
Alasan untuk kesalahan ini
Solusi sederhana dan cepat
Di OS Linux, Misalnya Anda telah menetapkan 3000 sebagai port
lsof -i :3000
. Jika ada proses yang sudah berjalan pada port 3000 maka Anda akan melihat pencetakan ini di konsolSalin PID (ID proses) dari output
Jalankan
sudo kill -9 16615
(Anda harus meletakkan PID setelah -9)sumber
Dalam kasus saya, saya harus menjalankan
vagrant reload
juga. Bahkan tanpa proses simpul menjalankan aplikasi ekspres saya di mesin virtual saya, saya masih mendapatkan kesalahan ini sampai memuat ulang kotak gelandangan.sumber
Hentikan layanan yang menggunakan port itu.
sumber
Dalam kasus saya, masalah ini disebabkan oleh lupa memanggil panggilan
next()
metode `penggunaan 'expressjs.http://expressjs.com/guide/using-middleware.html
sumber
Ini berhasil untuk saya.
http://www.codingdefined.com/2015/09/how-to-solve-nodejs-error-listen.html
Cukup ganti nomor port dari properti Project.
sumber
Anda juga dapat mengubah port dari Gruntfile.js dan jalankan kembali.
sumber
Setelah membunuh proses yang sama beberapa kali dan tidak dapat menemukan apa lagi yang berjalan pada port 8000, saya menyadari saya mencoba untuk menjalankan pada port 8000 dua kali:
Sebelum:
Setelah:
sumber
Saya memiliki masalah yang sama dan saya tahu, bahwa proses nodejs yang sebelumnya saya batalkan dengan CTRL + C masih berjalan. Masalah pada Windows 10 adalah, bahwa Ctrl + C tidak membunuh anggun nodejs. Saya membuka task manager dan mematikan prosesnya secara manual. Solusi yang disediakan di GitHub tidak bekerja untuk saya.
sumber
Jika Anda menggunakan windows, maka Anda dapat mengakhiri proses dari task manager untuk node.js
sumber
Tidak ada jawaban yang cocok untuk saya.
Ketika saya me-restart komputer saya, saya bisa menjalankan dan menjalankan server.
Mac
shutdown now -r
Linux
sudo shutdown now -r
sumber
-> periksa apa yang berjalan pada port 8080 atau port apa yang ingin Anda periksa
jika ada sesuatu yang berjalan, Anda dapat menutupnya atau menggunakan perintah kill untuk menutupnya
sumber
Sederhana cukup periksa teminal Anda di Visual Studio Code Karena saya menjalankan aplikasi node saya dan saya hibernasi laptop saya maka keesokan paginya saya menghidupkan laptop saya kembali untuk pengembangan perangkat lunak. Lalu saya menjalankan lagi perintah nodemon app.js Pertama berjalan dari malam dan yang kedua menjalankan perintah terbaru saya sehingga dua perintah meminta mendengarkan port yang sama itu sebabnya Anda mendapatkan masalah ini. Sederhana Tutup satu termianl atau semua terminal kemudian jalankan node app.js atau nodemon app.js Anda
sumber
Port yang Anda dengarkan sudah didengarkan oleh proses lain.
Ketika saya menghadapi kesalahan ini, saya mematikan proses menggunakan Windows PowerShell (karena saya menggunakan Windows)
ps
dan kemudian Anda bisa mendapatkan daftar prosesStop-process <Id>
saya pikir itu adalah bantuan untuk pengguna windowssumber
Saya mengalami masalah yang sama hari ini dan port tidak digunakan. Pendekatan berikut membantu:
sumber
JIKA ada di mac maka itu semua tentang IP x86_64-apple-darwin13.4.0. Jika Anda mengikuti kesalahan, itu akan terkait dengan x86_64-apple-darwin13.4.0. Menambahkan
127.0.0.1 x86_64-apple-darwin13.4.0
ke / etc / hosts file. Lalu masalahnya hilang
sumber
Cukup ganti port Anda, mungkin port Anda saat ini sedang digunakan oleh iis atau server lain.
sumber