Nodejs怎么在命令行关闭http服务
Nodejs怎么在命令行关闭http服务
RT
4 回复
Node.js 如何在命令行关闭 HTTP 服务
在使用 Node.js 创建 HTTP 服务时,有时我们需要通过命令行来停止或关闭该服务。这可以通过一些简单的脚本来实现。以下是一个示例,展示如何创建一个 HTTP 服务,并提供一种方式来关闭它。
示例代码
首先,我们创建一个基本的 HTTP 服务器:
// server.js
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
上述代码创建了一个简单的 HTTP 服务器,监听 3000
端口并返回 “Hello World”。
接下来,我们添加一个方法来关闭这个服务器。我们可以使用 process.stdin
来监听命令行输入,从而允许用户通过输入特定命令来关闭服务。
// server.js
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
// 监听命令行输入
process.stdin.on('data', (data) => {
const input = data.toString().trim();
if (input === 'shutdown') {
server.close(() => {
console.log('Server is now closed.');
process.exit(0);
});
}
});
});
在这个示例中,当用户在命令行输入 shutdown
并按回车键后,服务器将关闭。
解释
- 创建HTTP服务器:我们使用
http.createServer()
方法创建一个 HTTP 服务器。 - 启动服务器:调用
server.listen()
方法来启动服务器并监听指定端口。 - 监听命令行输入:使用
process.stdin.on('data', callback)
方法来监听命令行输入。当用户输入shutdown
并按下回车键时,会触发回调函数。 - 关闭服务器:在回调函数中,调用
server.close()
方法来关闭服务器,并在关闭后输出一条消息并退出进程。
这样,你就可以通过命令行轻松地关闭 Node.js HTTP 服务了。
如果直接运行, Ctrl+C 不就可以了?