J'essaie de comprendre comment arrêter une instance d'Express. Fondamentalement, je veux l'inverse de l' .listen(port)
appel - comment faire pour qu'un serveur Express arrête d'écouter, libère le port et s'arrête proprement?
Je sais que cela semble être une question étrange, alors voici le contexte; peut-être y a-t-il une autre façon d'aborder cela et j'y pense mal. J'essaie de configurer un cadre de test pour mon application socket.io/nodejs. C'est une application d'une seule page, donc dans mes scripts de test (j'utilise Mocha, mais cela n'a pas vraiment d'importance) Je veux pouvoir démarrer le serveur, exécuter des tests dessus, puis arrêter le serveur. Je peux contourner ce problème en supposant que soit le serveur est allumé avant le début du test, soit en demandant à l'un des tests de démarrer le serveur et de faire en sorte que chaque test suivant suppose qu'il est opérationnel, mais c'est vraiment compliqué. Je préférerais de beaucoup que chaque fichier de test démarre une instance de serveur avec les paramètres appropriés, puis arrête cette instance lorsque les tests sont terminés. Cela signifie qu'il n'y a pas de dépendances étranges pour exécuter le test et que tout est propre. Cela signifie également que je peux faire des tests de démarrage / arrêt.
Alors, des conseils sur la façon de procéder? J'ai pensé à déclencher manuellement des exceptions pour les réduire, mais cela semble compliqué. J'ai fouillé dans la documentation et la source d'Express, mais je ne parviens pas à trouver une méthode qui arrêtera le serveur. Il peut également y avoir quelque chose dans socket.io pour cela, mais comme le serveur de socket est simplement connecté au serveur Express, je pense que cela doit se produire au niveau de la couche express.