Sto cercando di capire come chiudere un'istanza di Express. Fondamentalmente, voglio l'inverso della .listen(port)
chiamata: come faccio a far smettere di ascoltare un server Express, rilasciare la porta e spegnerlo in modo pulito?
So che sembra che potrebbe essere una query strana, quindi ecco il contesto; forse c'è un altro modo per affrontare questo problema e ci sto pensando nel modo sbagliato. Sto cercando di configurare un framework di test per la mia app socket.io/nodejs. È un'app a pagina singola, quindi nei miei script di test (sto usando Mocha, ma non ha importanza) Voglio essere in grado di avviare il server, eseguire test su di esso e quindi spegnere il server. Posso aggirare il problema assumendo che il server sia acceso prima dell'inizio del test o facendo in modo che uno dei test avvii il server e che ogni test successivo presuma che sia attivo, ma è davvero complicato. Preferirei di gran lunga che ogni file di test avvii un'istanza del server con le impostazioni appropriate e quindi chiudesse quell'istanza al termine dei test. Ciò significa che non ci sono strane dipendenze nell'esecuzione del test e tutto è pulito. Significa anche che posso eseguire test di avvio / arresto.
Quindi, qualche consiglio su come farlo? Ho pensato di attivare manualmente le eccezioni per disattivarlo, ma sembra complicato. Ho esaminato la documentazione e la fonte di Express, ma non riesco a trovare alcun metodo che arresti il server. Potrebbe anche esserci qualcosa in socket.io per questo, ma poiché il server socket è solo collegato al server Express, penso che ciò debba accadere al livello Express.