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