nodejs crtl c tidak keluar

PHPz
PHPzasal
2023-05-08 09:10:10913semak imbas

Semasa proses pembangunan menggunakan Node.js, kadangkala kami menghadapi masalah pelik: menggunakan Ctrl+C pada baris arahan tidak boleh keluar dari program. Masalah ini sangat menyusahkan, kerana kami biasanya menggunakan Ctrl+C untuk mengganggu program yang sedang berjalan atau keluar dari baris arahan semasa. Mari kita bincangkan masalah ini dan penyelesaiannya di bawah.

Punca masalah

Dalam Node.js, kami biasanya menggunakan modul process untuk mengendalikan operasi berkaitan proses. Modul ini menyediakan banyak kaedah berguna, seperti process.exit() untuk keluar dari proses semasa. Jika kami ingin mendengar input pengguna dalam program kami, kami boleh menggunakan process.stdin untuk membaca input pengguna.

Namun, apabila kami menggunakan process.stdin untuk membaca input pengguna, jika input isyarat sampukan oleh pengguna tidak diproses (seperti Ctrl+C), atur cara akan jatuh ke dalam gelung tak terhingga dan tidak boleh bertindak balas kepada isyarat sampukan untuk keluar dari program . Ini kerana pengguna yang memasukkan Ctrl+C sebenarnya menghantar isyarat sampukan, dan tingkah laku lalai Node.js bukan untuk mengendalikan isyarat sampukan, dan proses akan terus berjalan.

Penyelesaian

Jadi, bagaimana untuk menangani masalah ini? Sebenarnya, sangat mudah untuk menyelesaikan masalah ini. Kita hanya perlu mendengar isyarat gangguan secara manual dan mengendalikannya dalam program. Berikut ialah contoh kod:

process.on('SIGINT', function() {
  console.log('Received SIGINT. Exiting...');
  process.exit(0);
});

Kod ini hanya mendengar isyarat gangguan (SIGINT) dan apabila isyarat diterima, mengeluarkan mesej dan keluar dari proses semasa menggunakan process.exit(). Dengan cara ini, apabila pengguna menggunakan Ctrl+C, proses akan keluar dengan betul.

Ringkasan

Di atas adalah mengenai sebab dan penyelesaian mengapa Ctrl+C tidak boleh keluar dari program dalam Node.js. Dengan mendengar isyarat gangguan secara manual dalam program, kami boleh memastikan program bertindak balas kepada input pengguna dengan betul dan keluar. Dalam perkembangan sebenar, kita harus memberi perhatian kepada masalah ini untuk mengelakkan masalah yang disebabkan olehnya.

Atas ialah kandungan terperinci nodejs crtl c tidak keluar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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