Node.js ialah persekitaran masa jalan JavaScript yang sangat berkuasa yang membolehkan pembangun menulis kod sebelah pelayan menggunakan bahasa JavaScript. Node.js boleh membangunkan pelbagai program sebelah pelayan dengan mudah, seperti aplikasi web, perkhidmatan API, baris gilir mesej, perkhidmatan Soket, dsb. Walau bagaimanapun, apakah yang perlu kita lakukan apabila kita perlu menghentikan atau menutup perkhidmatan Node.js? Dalam artikel ini, kami akan membincangkan beberapa petua praktikal untuk membantu anda menghentikan atau menutup perkhidmatan Node.js yang sedang berjalan.
Hentikan perkhidmatan Node.js yang sedang berjalan
Dalam Node.js, kita boleh menggunakan objek proses untuk melihat maklumat tentang proses semasa atau mengawal pelaksanaan proses semasa. Untuk menghentikan perkhidmatan Node.js yang sedang berjalan, kami boleh menghantar isyarat kepada proses untuk mematikannya. Dalam sistem Linux atau Unix, kita boleh menggunakan perintah bunuh untuk menghantar isyarat kepada proses. Sebagai contoh, arahan berikut boleh menghantar isyarat SIGTERM kepada proses 12345:
$ kill -SIGTERM 12345
Dalam Node.js, kita boleh menggunakan kaedah process.kill untuk menghantar isyarat kepada proses semasa. Contohnya, anda boleh menggunakan kod berikut untuk menghantar isyarat SIGTERM kepada proses semasa:
process.kill(process.pid, 'SIGTERM');
Apabila Node.js menerima isyarat, ia mencetuskan peristiwa keluar objek proses. Kami boleh mendengar acara ini untuk melakukan beberapa operasi pembersihan, seperti menutup sambungan pangkalan data, menyimpan data, dsb. Berikut ialah contoh kod:
// 在应用程序开始时,监听 SIGTERM 和 SIGINT 信号 process.on('SIGTERM', shutdown); process.on('SIGINT', shutdown); // 定义 shutdown 函数 function shutdown() { console.log('Received signal, shutting down...'); // 做一些清理工作 // 关闭数据库连接、保存数据等等 process.exit(); }
Kod di atas akan mendengar isyarat SIGTERM dan SIGINT apabila aplikasi bermula. Apabila isyarat diterima, mesej dicetak dan fungsi penutupan dilaksanakan. Anda boleh menambah beberapa operasi pembersihan yang ingin anda lakukan dalam fungsi penutupan, seperti menutup sambungan pangkalan data, menyimpan data, dsb. Akhirnya, pelaksanaan proses ditamatkan menggunakan kaedah process.exit().
Matikan pelayan HTTP
Apabila anda membangunkan aplikasi web menggunakan Node.js, anda mungkin perlu mematikan pelayan HTTP. Dalam Node.js, kita boleh menggunakan kelas http.Server untuk mencipta pelayan HTTP. Selepas membuat contoh pelayan, anda boleh menggunakan kaedah tutup untuk menutup pelayan. Contohnya, kod berikut:
const http = require('http'); const server = http.createServer((req, res) => { res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server is started...'); }); // 在 10 秒后关闭服务器 setTimeout(() => { console.log('Closing server...'); server.close(); }, 10000);
Kod di atas akan mencipta pelayan HTTP, dan kemudian memanggil kaedah tutup pada objek pelayan untuk menutup pelayan. Perlu diingatkan bahawa sebelum menutup pelayan, kita perlu membiarkan pelayan selesai memproses permintaan semasa untuk mengelakkan hentian paksa yang menyebabkan permintaan diproses gagal. Jika anda ingin menghentikan pelayan serta-merta dan menutup permintaan yang sedang diproses, anda boleh menggunakan kaedah destroy().
server.on('connection', (socket) => { socket.on('close', () => { console.log('Connection is closed...'); }); }); setTimeout(() => { console.log('Closing server and destroying all sockets...'); server.destroy(); }, 10000);
Kod di atas akan segera menutup pelayan dan memanggil kaedah destroy() untuk mengendalikan semua sambungan yang sedang berjalan. Perlu diingatkan bahawa apabila menggunakan kaedah destroy() , anda tidak boleh lagi menggunakan kaedah close() untuk menutup pelayan.
Ringkasan
Dalam artikel ini, kami memperkenalkan cara untuk menghentikan atau mematikan perkhidmatan Node.js yang sedang berjalan. Kami boleh menghantar isyarat kepada proses untuk menamatkan proses, atau kami boleh menggunakan kaedah close() untuk menutup pelayan HTTP. Perlu diingatkan bahawa kita perlu melengkapkan permintaan semasa sebelum menutup proses atau pelayan. Semoga petua ini akan membantu anda menghentikan atau mematikan perkhidmatan Node.js anda dengan cepat dan mudah.
Atas ialah kandungan terperinci perkhidmatan tutup nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!