我正在学习nodejs。我按照指南 here在官方网站上并创建了 app.js。这是一个简单的应用程序,它创建一个监听特定端口的 HTTP 服务器。
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}/`);
});
我使用的是 macOS Mojave 10.14。我通过终端执行此操作,服务器开始监听。
现在没有优雅的方式可以离开。
我试过了,
1. process.exit() - 没有效果
2. Command + C - 无效果(仅发出错误提示音)
3. Command + D - 仅将终端发送到后台,但进程仍在运行。
只剩下打开新终端并杀死它的选项
Kill -9 PID 或 Killall Node 。 (这不是优雅的方式)
有没有一种优雅的方式来退出这个 Node 进程?
附注另一个问题是,当您通过其他终端实例终止进程时,服务器进程运行时传递的命令(选项 1 到 3)将在启动服务器进程的终端上执行。例如
1. term 1 -> 服务器进程由 Node 启动 -> 尝试通过上面列出的选项 1 到 3 关闭进程,
2. term 2 -> 杀死所有 Node
3. 在 term 1 -> 服务器进程死亡 -> 执行选项 1、2 和 3 中的命令。我不明白为什么会发生这种事。
最佳答案
要终止 UNIX 系统中的前台进程,请按 Ctrl+c。请勿将其与 ⌘ Command 键混淆。
关于node.js - 如何在 macOS (mojave 10.14) 上优雅地停止 NodeJS 服务器监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034574/