这似乎是 npm 或 Windows 终端中的一个错误,或者可能是我不知道的设置。我有一个简单的节点应用程序,其中安装了 express,并且只有一个index.js包含以下代码的文件:
import express from 'express';
const port = process.argv[2]
const app = express();
app.get('/', (req, res) => res.send(`Hello from port ${port}`))
app.listen(port, () => console.log('Server is running at http://localhost:' + port));
我也有这个包文件.json:
"scripts": {
"start": "node index.js"
}
然后我在项目目录中打开 Windows Terminal 并执行npm start 3000
,然后访问 http://localhost:3000 并关闭终端。当我刷新页面时,我可以看到服务器仍在运行,除了重新登录用户之外没有其他方法可以停止它。
通过在 Power Shell 或 CMD 上运行命令或直接node index.js
在 Windows 终端上运行,可以解决该问题。因此,Windows 终端和 npm 的组合似乎在某种程度上导致了问题。
有谁知道如何避免这种情况并确保当我关闭 Windows 终端时该过程停止?