Saya mencoba mencari cara untuk menutup instance Express. Pada dasarnya, saya ingin kebalikan dari .listen(port)
panggilan - bagaimana cara mendapatkan server Express untuk BERHENTI mendengarkan, melepaskan port, dan mematikan dengan bersih?
Saya tahu ini sepertinya pertanyaan yang aneh, jadi inilah konteksnya; mungkin ada cara lain untuk mendekati ini dan saya memikirkannya dengan cara yang salah. Saya mencoba menyiapkan kerangka pengujian untuk aplikasi socket.io/nodejs saya. Ini adalah aplikasi satu halaman, jadi dalam skrip pengujian saya (saya menggunakan Mocha, tetapi itu tidak terlalu penting) Saya ingin dapat memulai server, menjalankan pengujian terhadapnya, dan kemudian mematikan server. Saya bisa menyiasatinya dengan mengasumsikan bahwa server dihidupkan sebelum tes dimulai atau dengan salah satu tes memulai server dan setiap tes berikutnya menganggapnya sudah habis, tetapi itu benar-benar berantakan. Saya lebih suka jika setiap file pengujian memulai instance server dengan pengaturan yang sesuai dan kemudian menutup instance itu saat pengujian selesai. Itu berarti tidak ada ketergantungan yang aneh untuk menjalankan pengujian dan semuanya bersih. Ini juga berarti saya dapat melakukan pengujian startup / shutdown.
Jadi, ada saran tentang bagaimana melakukan ini? Saya telah memikirkan untuk memicu pengecualian secara manual untuk menurunkannya, tetapi itu tampaknya berantakan. Saya telah menggali dokumen dan sumber Express, tetapi sepertinya tidak dapat menemukan metode apa pun yang akan mematikan server. Mungkin juga ada sesuatu di socket.io untuk ini, tetapi karena server soket baru saja terpasang ke server Ekspres, saya pikir ini perlu terjadi di lapisan ekspres.