Node.js 是一种流行的后端 JavaScript 运行环境,它可以创建 HTTP 或 HTTPS 服务器并处理客户端请求。在某些情况下,需要关闭服务器以停止服务并释放占用的端口。本文将探讨 Node.js 中如何关闭一个 HTTP 或 HTTPS 服务器,涵盖了详细的步骤以及实际的代码示例。
HTTP 与 HTTPS 服务器的关闭方法
在 Node.js 中,可以使用 server.close()
方法关闭 HTTP 或 HTTPS 服务器。该方法接受一个可选的回调函数,该函数在服务器关闭时被调用。下面是该方法的通用语法:
server.close([callback])
此处的 server
指的是创建的 HTTP 或 HTTPS 服务器的实例对象。调用 server.close()
方法会立刻停止接受新的请求,并在当前所有请求都响应完成后关闭服务器。
关闭 HTTP 服务器示例
下面是一个简单的 Node.js HTTP 服务器实现,可以启动服务器并响应客户端请求。
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------ - ----------------------- ---- -- - ------------------- -------------- --------- --- ------------------- -- -- - ----------------- ------ ------- -- ---- ------- ---
要关闭该服务器,可以在控制台中按 Ctrl + C
组合键,这将终止该应用程序及其子进程。也可以编写代码以编程方式关闭服务器。例如,以下代码将在服务器运行 10 秒钟后关闭服务器。
setTimeout(() => { server.close(() => { console.log('HTTP server closed'); }); }, 10000);
该代码使用 setTimeout()
函数在 10 秒后调用 server.close()
方法。传递给 server.close()
的回调函数在服务器关闭时被调用,并输出一条消息。
关闭 HTTPS 服务器示例
如果要使用 HTTPS 协议创建服务器,则需要使用 https
模块代替 http
模块。下面是一个使用自签名证书启用 HTTPS 服务器的示例:
-- -------------------- ---- ------- ----- ----- - ----------------- ----- -- - -------------- ----- ------- - - ---- ------------------------------ ----- ----------------------------- -- ----- ------ - --------------------------- ----- ---- -- - ------------------- -------------- --------- --- ------------------- -- -- - ------------------ ------ ------- -- ---- ------- ---
要关闭该服务器,可以使用与关闭 HTTP 服务器相同的代码。以下示例将在服务器运行 10 秒钟后关闭服务器。
setTimeout(() => { server.close(() => { console.log('HTTPS server closed'); }); }, 10000);
结论
在 Node.js 中关闭 HTTP 或 HTTPS 服务器非常简单。只需使用 server.close()
方法即可停止服务器并释放端口。此外,还可以在回调函数中执行自定义操作,以确保服务器完全关闭后再退出应用程序。这是在开发 Node.js 应用程序时的一个很好的实践。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/674ebcefe884a3e30f2982cd