我正在想办法关闭 Express 的一个实例。基本上,我想要的反 .listen(port)
调用-如何让一个 Express 服务器停止监听,释放端口,并关闭干净?
我知道这似乎是一个奇怪的问题,所以这里的上下文; ,也许有另一种方式来处理这个问题,我想它的方式是错误的。我正在为我的 socket.io/nodejs 应用程序设置一个测试框架。它是一个单页面的应用程序,因此在我的测试脚本中(我使用的是 摩卡,但这并不重要) ,我希望能够启动服务器,对其运行测试,然后关闭服务器。我可以通过假设服务器在测试开始之前就已经打开,或者通过让其中一个测试启动服务器并让后续的每个测试都假设服务器已经启动来解决这个问题,但是这真的很麻烦。我更希望每个测试文件使用适当的设置启动一个服务器实例,然后在测试结束时关闭该实例。这意味着运行测试没有奇怪的依赖关系,一切都是干净的。这也意味着我可以做启动/关闭测试。
有什么建议吗?我曾经想过手动触发异常来降低它,但是这看起来很麻烦。我已经查看了 Express 文档和源代码,但似乎找不到任何关闭服务器的方法。在 socket.io 中可能也有这样的功能,但是因为套接字服务器只是连接到 Express 服务器,所以我认为这需要在 Express 层进行。