La détection de touches CTRL+C dans Node.js
J'ai eu ce code à partir d'un autre DONC, la question, mais le nœud s'est plaint à l'utilisation de processus.stdin.setRawMode au lieu de l'ats, alors je l'ai changé.
Avant:
var tty = require("tty");
process.openStdin().on("keypress", function(chunk, key) {
if(key && key.name === "c" && key.ctrl) {
console.log("bye bye");
process.exit();
}
});
tty.setRawMode(true);
Après:
process.stdin.setRawMode(true);
process.stdin.on("keypress", function(chunk, key) {
if(key && key.name === "c" && key.ctrl) {
console.log("bye bye");
process.exit();
}
});
En tout cas, c'est juste la création d'un totalement inerte nœud de processus qui ne fait rien, le premier à se plaindre de tty
, puis de lancer une erreur, et la seconde, à ne rien faire et la désactivation du Nœud natif CTRL+C gestionnaire, de sorte qu'il n'a même pas quitter le nœud quand je le presse. Comment puis-je gérer avec succès Ctrl+C dans Windows?
Vous devez vous connecter pour publier un commentaire.
Si vous essayez d'attraper le signal d'interruption
SIGINT
, vous n'avez pas besoin de lire à partir du clavier. Leprocess
objet denodejs
expose une interruption de l'événement:Modifier: ne fonctionne pas sur Windows sans une solution de contournement. Voir ici
Pour ceux qui ont besoin de cette fonctionnalité, j'ai trouvé la mort (mnp nodule, hah!).
Auteur revendications il fonctionne sur windows:
Je peux confirmer CTRL+C fonctionne sur win32 (oui, je suis surpris).