Cara menutup aplikasi Node.js dengan anggun

PHPz
Lepaskan: 2023-04-17 16:23:36
asal
1129 orang telah melayarinya

Node.js ialah persekitaran masa jalan merentas platform sumber terbuka. Ia membolehkan pembangun web baru membina aplikasi yang cekap menggunakan kod JavaScript mudah. Tetapi dalam pembangunan, anda perlu mempertimbangkan cara untuk menutup aplikasi Node.js anda dengan anggun. Dalam artikel ini, kita akan membincangkan cara menghentikan kod Node.js dengan anggun.

  1. Kekunci pintasan Ctrl+C
    Dalam tetingkap terminal, menekan gabungan kekunci Ctrl+C akan memaksa menutup aplikasi Node.js. Dalam persekitaran Linux dan Unix, kaedah ini adalah yang paling pantas dan paling biasa digunakan. Gabungan kekunci ini terikat pada pengurus proses Node.js dan boleh digunakan untuk menutup aplikasi dengan menekan Ctrl+C.
  2. Pengendali Isyarat
    Pengendali isyarat Node.js ialah satu lagi cara yang berkesan untuk menutup kod anda. Kaedah ini menggunakan kaedah terbina dalam objek proses untuk mendengar isyarat. Apabila isyarat ditangkap, kod boleh ditulis untuk bertindak balas kepadanya. Menggunakan pendekatan ini, isyarat boleh ditangkap dan dikendalikan, menghalang pengendali keluar Node.js lalai daripada menamatkan aplikasi.

Berikut ialah contoh yang menunjukkan cara untuk menyediakan pengendali Pengendali Isyarat:

function gracefulShutdown() {
  console.log("Node process stopping...");

  // 停止Web服务器
  server.close(() => console.log("HTTP server stopped"));

  // 关闭数据库连接
  mongoose.connection.close(() => console.log("MongoDB connection closed"));

  // 结束Node进程
  process.exit(0);
}

process.on("SIGTERM", gracefulShutdown);
process.on("SIGINT", gracefulShutdown);
Salin selepas log masuk

Dalam coretan kod ini, gracefulShutdown akan dipanggil apabila isyarat SIGTERM dan SIGINT diterima fungsi untuk menyelesaikan operasi berikut:

  • Tutup pelayan HTTP.
  • Tutup sambungan pangkalan data MongoDB.
  • Tamatkan proses Node.js.
  1. Kaedah Process.exit()
    Dalam Node.js, jika anda ingin keluar dari aplikasi sepenuhnya, anda boleh menggunakan kaedah process.exit(0). Dalam kes ini, permohonan akan keluar tanpa memberikan sebarang petunjuk. Tetapi sila ambil perhatian bahawa kaedah ini bukanlah perhentian yang anggun.
  2. Menggunakan modul Node dan npm
    Modul Node.js dan npm direka khusus untuk melancarkan dan mengurus aplikasi Node.js. Menggunakan kaedah ini, anda perlu memasang aplikasi Node, yang akan menggunakan modul npm untuk mengendalikan kod yang menghentikan aplikasi. Pendekatan ini biasanya melibatkan amaran atau acara keluar untuk memastikan aplikasi berhenti dengan anggun.

Berikut ialah contoh penggunaan modul forever Node.js:

var forever = require("forever");

var child = new (forever.Monitor)("app.js", {
  max: 3, //最多重启3次
  silent: true, // 启动应用程序时,不显示输出到控制台的日志
  args: []
});

// 在关闭应用程序之前执行以下操作
child.on("exit", function() {
  console.log("App has stopped");
});

// 启动并监视应用程序
child.start();
Salin selepas log masuk

Dalam coretan kod ini, modul forever boleh melancarkan dan memantau aplikasi Node.js. Jika memulakan semula aplikasi tidak berjaya selepas empat percubaan, aplikasi akan berhenti. Jika menggunakan kaedah ini, anda harus menghentikan modul forever pada penghujung untuk memastikan semua proses pada pelayan ditutup.

Kesimpulan

Dalam pembangunan aplikasi Node.js, menghentikan aplikasi dengan betul merupakan isu penting. Menutup aplikasi Node.js dengan anggun memastikan data dipelihara, semua sumber tidak terjejas dan menjalankan aplikasi lain tidak terjejas. Artikel ini menyediakan empat kaedah berbeza, termasuk menggunakan pintasan Ctrl + C, mencipta fungsi pemprosesan isyarat, menggunakan kaedah process.exit(0) dan menggunakan modul Node dan npm. Anda boleh memilih kaedah yang paling sesuai dengan keperluan anda untuk memastikan aplikasi Node.js anda berhenti dengan anggun.

Atas ialah kandungan terperinci Cara menutup aplikasi Node.js dengan anggun. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!