
Dies scheint ein Fehler in npm oder im Windows-Terminal zu sein, oder vielleicht gibt es eine Einstellung, die ich nicht kenne. Ich habe eine einfache Node-App, in der ich Express installiert habe, und eine einzelneindex.jsDatei mit diesem Code:
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));
Ich habe das auch in meinemPaket.json:
"scripts": {
"start": "node index.js"
}
Dann öffne ich das Windows-Terminal im Verzeichnis meines Projekts und mache npm start 3000
, dann besuche ich http://localhost:3000 und schließe das Terminal. Wenn ich die Seite aktualisiere, kann ich sehen, dass der Server noch läuft und es keine andere Möglichkeit gibt, ihn zu stoppen, als den Benutzer erneut anzumelden.
Das Problem wird entweder durch Ausführen des Befehls in Power Shell oder CMD oder durch direktes Ausführen node index.js
im Windows-Terminal gelöst. Irgendwie scheint also die Kombination aus Windows-Terminal und npm das Problem zu verursachen.
Kennt jemand eine Möglichkeit, dies zu vermeiden und sicherzustellen, dass der Vorgang beendet wird, wenn ich das Windows-Terminal schließe?