我试图弄清楚如何关闭Express实例。基本上,我想跟.listen(port)
电话相反-如何让Express服务器停止监听,释放端口并干净地关机?
我知道这似乎是一个奇怪的查询,所以这里是上下文;也许还有另一种方法可以解决这个问题,而我正在考虑错误的方法。我正在尝试为我的socket.io/nodejs应用设置测试框架。这是一个单页应用程序,因此在我的测试脚本中(我正在使用Mocha,但这并不重要)我希望能够启动服务器,针对它运行测试,然后关闭服务器。我可以通过假设在测试开始之前打开服务器电源,或者通过其中一个测试启动服务器,然后让每个后续测试都假设它已启动来解决此问题,但这确实很麻烦。我更希望每个测试文件使用适当的设置启动服务器实例,然后在测试结束后关闭该实例。这意味着运行测试没有任何怪异的依赖关系,并且一切都很干净。这也意味着我可以进行启动/关闭测试。
那么,有关如何执行此操作的任何建议?我曾考虑过手动触发异常以降低异常,但这似乎很混乱。我已经研究过Express文档和源代码,但似乎找不到任何可以关闭服务器的方法。为此,socket.io中可能还包含一些内容,但是由于套接字服务器只是连接到Express服务器,因此我认为这需要在Express层进行。