Bagaimana untuk keluar di Node.js
Apa perintah yang digunakan untuk keluar? (saya.e mengakhiri Node.js proses)
1748
18
Apa perintah yang digunakan untuk keluar? (saya.e mengakhiri Node.js proses)
Panggilan global
proses
objek'skeluar
metode:Dari docs:
Dari situs resmi nodejs.org dokumentasi:
Mengakhiri proses dengan kode tertentu. Jika dihilangkan, keluar menggunakan 'sukses' kode 0.
Untuk keluar dengan 'gagal' kode:
Hanya sebuah catatan yang menggunakan
proses.keluar([jumlah])
adalah tidak disarankan praktek.Jika anda're di terminal Unix atau Windows command line dan ingin keluar dari Node REPL, baik...
.exit
dan tekan Enter, atauDari baris perintah,
.keluar
adalah apa yang anda inginkan:It's didokumentasikan dalam REPL docs. REPL (Read-Eval-Print-Loop) adalah apa Node baris perintah disebut.
Dari program yang normal, gunakan
proses'.keluar([kode])
.Hal ini tergantung pada alasan mengapa anda're bersedia untuk keluar node.js proses, tetapi dalam hal apapun
proses.exit()
adalah pilihan terakhir untuk mempertimbangkan. Kutipan dari dokumentasi:Mari kita tutup kemungkinan alasan mengapa anda mungkin bersedia untuk keluar node.js proses dan mengapa anda harus menghindari
proses.exit()
:Kasus 1 - Eksekusi lengkap (naskah baris perintah)
Jika naskah telah mencapai akhir dan node penerjemah doesn't keluar, hal ini menunjukkan bahwa beberapa operasi async yang masih tertunda. Itu salah untuk memaksa penghentian proses dengan
proses.exit()
pada saat ini. Itu lebih baik untuk mencoba memahami apa yang sedang memegang naskah anda dari keluar di harapkan way. Dan ketika anda menyelesaikan ini, anda dapat menggunakanproses.exitCode
kembali ke semua hasil untuk memanggil proses.Kasus 2 - Penghentian karena eksternal sinyal (SIGINT/SIGTERM/lainnya)
Misalnya, jika anda bersedia untuk anggun menutup aplikasi express app. Tidak seperti script baris perintah, aplikasi express terus berjalan jauh, menunggu permintaan baru.
proses.exit()
akan menjadi pilihan yang buruk di sini karena itu akan mengganggu semua permintaan yang ada di dalam pipa. Dan beberapa dari mereka mungkin menjadi non-idempotent (UPDATE, DELETE). Klien tidak akan pernah tahu jika permintaan tersebut selesai atau tidak pada sisi server dan mungkin itu yang menjadi alasan dari terjadinya inkonsistensi data antara klien dan server. Satu-satunya solusi yang baik adalah untuk memberitahu server http untuk berhenti menerima permintaan baru dan menunggu untuk menunggu orang-orang untuk menyelesaikan denganserver.close()
:Jika masih tidak't keluar seperti Kasus 1.
Kasus 3 - kesalahan Internal
It's selalu lebih baik untuk
membuang
kesalahan, anda akan mendapatkan baik diformat jejak stack dan pesan kesalahan. Tingkat atas dari kode selalu dapat memutuskan apakah mereka dapat menangani error (menangkap
) atau biarkan kecelakaan proses. Di sisi lain,proses.exit(1)
akan menghentikan proses diam-diam dan tidak akan ada kesempatan untuk pulih dari ini. Itu mungkin menjadi satu-satunya "manfaat" dariproses.exit()
, anda dapat yakin bahwa proses akan dihentikan.REPL(Baris Perintah)
Tekan
ctrl + c
dua kaliType
.exit
dan tekan enterFile Skrip
Node biasanya keluar dengan kode 0 ketika tidak ada lagi async operasi yang tertunda.
proses.exit(1)
harus digunakan untuk keluar dengan kode kegagalan.Ini akan memungkinkan kita untuk menyimpulkan bahwa node didn't dekat dengan anggun dan dipaksa untuk menutup.Ada yang lain keluar kode seperti
3 - Internal JavaScript Parse Error ( sangat langka)
5 - kesalahan Fatal dalam v8 javascript engine
9 - argumen tidak Valid
Untuk daftar lengkap lihat node keluar kode
Saya memiliki aplikasi yang saya ingin:
Aku harus kail
proses.keluar(code)
untukkeluar
event handler, atau email tidak akan dikirim sejak memanggilproses.keluar(code)
langsung membunuh asynchronous acara.Seperti @Dominic mencontohkan, melemparkan tertangkap error adalah praktek yang lebih baik daripada menelepon proses.keluar([kode]):
proses.exitCode = 1; melempar Kesalahan baru("saya modul xx kondisi gagal");
Untuk keluar
Berguna keluar kode
Tekan
Ctrl + C
dua kali atau.exit
.Dari kode anda dapat menggunakan
proses.keluar([errorcode])
di mana[errorcode]
adalah opsional integer (0
adalah default untuk menunjukkan keberhasilan).Jika anda're menggunakan Baca Eval Cetak Loop (REPL), anda dapat menggunakan Pilih + A, atau jenis
.exit
Selain itu, pada Windows atau Linux, anda dapat menggunakan Pilih + C, Pilih + C
Pada Mac perintah Pilih + Z, Pilih + Z
Aku bisa mendapatkan semua simpul saya proses untuk mati langsung dari Git Bash shell pada Windows 10 dengan mengetik
taskkill -F -IM node.exe
- ini berakhir semua node proses pada komputer saya sekaligus. Ternyata aku bisa juga menggunakantaskkill /F ///IM node.exe
. Tidak yakin mengapa kedua-
dan//
bekerja dalam konteks ini. Harap ini membantu!Buka command line terminal di mana node menjalankan aplikasi dan tekan Ctrl + C
jika anda ingin keluar dari node js aplikasi dari kode, `` proses.exit(); // anggun penghentian proses.exit(1); // non anggun penghentian
Sebagai proses global objek, anda don't perlu mengimpor setiap modul. Berikut fungsi keluar atau membunuh node saat ini proses.
jika anda ingin keluar dari aplikasi node js kemudian menulis
dalam kode anda
Keluar di node js dilakukan dalam dua cara:
Bagaimana cara kerjanya?
Jika anda ingin memaksa eksekusi loop untuk menghentikan proses, yo dapat menggunakan variabel global proses yang merupakan contoh dari EventEmitter. Jadi, ketika anda menelepon proses.exit() anda benar-benar memancarkan exit acara yang berakhir semua tugas-tugas segera bahkan jika masih ada operasi asynchronous tidak pernah dilakukan.
proses.exit() mengambil kode keluar (Integer) sebagai parameter. Kode 0 adalah default dan ini berarti ia keluar dengan 'sukses'. Sementara kode 1 berarti itu keluar dengan 'gagal'.
Anda dapat menggunakan proses.keluar([kode]) fungsi.
Jika anda ingin keluar tanpa 'gagal', anda menggunakan kode
0
:Untuk keluar dengan 'gagal' kode
1
, anda dapat menjalankan:The 'gagal' kode kegagalan adalah spesifik untuk aplikasi. Jadi, anda dapat menggunakan anda sendiri konvensi untuk itu.