Я пытаюсь выяснить, как закрыть экземпляр Express. По сути, я хочу обратный вызов .listen(port)
- как мне заставить сервер Express остановить прослушивание, освободить порт и полностью завершить работу?
Я знаю, что это может показаться странным запросом, так что вот контекст; возможно есть другой способ приблизиться к этому, и я думаю об этом неправильным способом. Я пытаюсь настроить среду тестирования для моего приложения socket.io/nodejs. Это одностраничное приложение, поэтому в моих сценариях тестирования (я использую Mocha , но это не имеет большого значения) я хочу иметь возможность запускать сервер, запускать на нем тесты и затем выключите сервер. Я могу обойти это, предполагая, что либо сервер включен перед началом теста, либо если один из тестов запускает сервер и каждый последующий тест предполагает, что он работает, но это действительно грязно. Я бы предпочел, чтобы каждый тестовый файл запускал экземпляр сервера с соответствующими настройками и затем закрывал этот экземпляр по окончании тестов. Это означает, что нет никаких странных зависимостей от запуска теста, и все чисто. Это также означает, что я могу выполнить тестирование при запуске / завершении работы.
Итак, какой-нибудь совет о том, как это сделать? Я думал о том, чтобы вручную вызывать исключения, чтобы сбить его, но это кажется грязным. Я копался в документах и источниках Express, но не могу найти какой-либо метод, который выключит сервер. Для этого также может быть что-то в socket.io, но так как сервер сокетов просто подключен к серверу Express, я думаю, что это должно произойти на уровне Express.