Próbuję dowiedzieć się, jak wyłączyć wystąpienie Express. Zasadniczo chcę mieć odwrotność .listen(port)
połączenia - jak sprawić, aby serwer Express ZATRZYMAŁ nasłuchiwanie, zwolnił port i zamknął czysto?
Wiem, że może to być dziwne zapytanie, więc oto kontekst; może jest inny sposób podejścia do tego i myślę o tym w niewłaściwy sposób. Próbuję skonfigurować środowisko testowe dla mojej aplikacji socket.io/nodejs. Jest to aplikacja jednostronicowa, więc w moich skryptach testowych (używam Mocha, ale to nie ma znaczenia) Chcę móc uruchomić serwer, przeprowadzić testy, a następnie wyłączyć serwer. Mogę obejść ten problem, zakładając, że albo serwer jest włączony przed rozpoczęciem testu, albo przez jeden z testów uruchamiający serwer i każdy kolejny test zakłada, że jest włączony, ale to naprawdę bałagan. Zdecydowanie wolałbym, aby każdy plik testowy uruchamiał instancję serwera z odpowiednimi ustawieniami, a następnie zamykał ją po zakończeniu testów. Oznacza to, że nie ma żadnych dziwnych zależności od uruchomienia testu i wszystko jest czyste. Oznacza to również, że mogę przeprowadzić testy uruchamiania / zamykania.
Masz jakąś radę, jak to zrobić? Myślałem o ręcznym uruchamianiu wyjątków, aby go wyłączyć, ale wydaje się to kłopotliwe. Przeszukałem dokumenty i źródła Express, ale nie mogę znaleźć żadnej metody, która wyłączyłaby serwer. Może być coś do tego w socket.io, ale ponieważ serwer gniazd jest właśnie podłączony do serwera Express, myślę, że musi to się wydarzyć w warstwie ekspresowej.