449 Stimmen

Führen einer Bereinigungsaktion kurz bevor Node.js beendet wird

Ich möchte Node.js sagen, dass es immer etwas tun soll, kurz bevor es beendet wird, aus welchem Grund auch immer — Strg+C, eine Ausnahme oder aus einem anderen Grund.

Ich habe dies versucht:

process.on('exit', function (){
    console.log('Auf Wiedersehen!');
});

Ich habe den Prozess gestartet, ihn beendet und es ist nichts passiert. Ich habe ihn erneut gestartet, Strg+C gedrückt und es passierte immer noch nichts...

1 Stimmen

0voto

Noy Oliel Punkte 1307

Für diejenigen von Ihnen, die npm-Skripte ausführen und eine Aktion vor Abschluss des Prozesses durch die Skriptzeilendefinition ohne zusätzliche Dateidefinition ausführen möchten, können Sie nur ein Semikolon hinzufügen (überprüft auf dem Mac)

Zum Beispiel:

"start": "npm run add-hosts-to-hosts-file && npm run start ; npm run clear-hosts-from-hosts file",

Dies deckt das Szenario für Strg + C ab. Könnte auch andere Fälle abdecken.

-1voto

Hanuman Punkte 6741

Im Fall, dass der Prozess von einem anderen Knotenprozess gestartet wurde, wie:

var child = spawn('gulp', ['watch'], {
    stdio: 'inherit',
});

Und Sie versuchen später, ihn zu beenden, über:

child.kill();

So wird das Ereignis [auf dem Kind] gehandhabt:

process.on('SIGTERM', function() {
    console.log('Auf Wiedersehen!');
});

-4voto

Mendel Jacks Punkte 1

Hier ist ein netter Hack für Windows

process.on('exit', async () => {
    require('fs').writeFileSync('./tmp.js', 'crash', 'utf-8')
});

0 Stimmen

Nicht wirklich ein netter Hack, wenn Sie keine Erläuterung dazu liefern, was Ihr Code macht und welches Ziel damit erreicht wird. Ich kann nur vermuten, dass dies der Grund für die negativen Bewertungen ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X