Estou tentando descobrir como encerrar uma instância do Express. Basicamente, quero o inverso da .listen(port)
chamada - como faço para que um servidor Express PARE de escutar, libere a porta e desligue de forma limpa?
Eu sei que parece ser uma consulta estranha, então aqui está o contexto; talvez haja outra maneira de abordar isso e eu esteja pensando da maneira errada. Estou tentando configurar uma estrutura de teste para meu aplicativo socket.io/nodejs. É um aplicativo de página única, então em meus scripts de teste (estou usando o Mocha, mas isso realmente não importa) Eu quero ser capaz de iniciar o servidor, executar testes nele e, em seguida, desligar o servidor. Posso contornar isso presumindo que o servidor esteja ligado antes do início do teste ou fazendo com que um dos testes inicie o servidor e todos os testes subsequentes presumam que ele está ativo, mas isso é realmente confuso. Eu preferiria que cada arquivo de teste iniciasse uma instância do servidor com as configurações apropriadas e, em seguida, desligasse essa instância quando os testes terminassem. Isso significa que não há dependências estranhas para executar o teste e tudo está limpo. Também significa que posso fazer testes de inicialização / desligamento.
Então, algum conselho sobre como fazer isso? Pensei em disparar exceções manualmente para derrubá-lo, mas isso parece confuso. Procurei nos documentos e na origem do Express, mas não consigo encontrar nenhum método que desligue o servidor. Também pode haver algo no socket.io para isso, mas como o servidor de soquete está apenas conectado ao servidor Express, acho que isso precisa acontecer na camada expressa.