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