Я новичок в node.js и следую некоторым руководствам. В одном из них я выполняю следующий код и ожидаю корректного завершения работы терминала, что не так.
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function(chunk) {
process.stdout.write('Data! -> ' + chunk);
});
process.stdin.on('end', function() {
process.stderr.write('End!\n');
});
process.on('SIGTERM', function() {
process.stderr.write("Why are you trying to terminate me?!? :-)");
});
console.log("Node is running as process #" + process.pid);
Он работает нормально, но когда я выдаю с другого терминала следующее
taskkill / PID 29884 / F
Я не понимаю функцию
process.on ('SIGTERM', function () ....
выполнить.
Я наткнулся на поток здесь Что такое Windows эквивалент process.on ('SIGINT') в node.js?
Я получаю такое же поведение, убивая процесс, просто возвращается в командную строку
Затем я попытался обновить код, который я получил из потока, с помощью некоторого кода, чтобы перепечатать Данные, которые я ввожу на консоли, не попадают туда (я добавил rl.on ("data", function (chunk))
(process.platform === "win32") {
var rl = require("readline").createInterface({
input: process.stdin,
output: process.stdout
});
rl.output.setEncoding('utf8');
console.log("Node is running as process #" + process.pid);
rl.on("data", function(chunk) {
this.output.write('Data! -> ' + chunk);
});
rl.on("SIGINT", function() {
process.emit("SIGINT");
});
};
process.on("SIGINT", function() {
//graceful shutdown
process.exit();
});
rl.on("data", function(chunk) {
this.output.write('Data! -> ' + chunk);
});
просто отправляет обратно Строка 'Data! ->' без текста, который я ввожу в консоль, как в случае с 1-м кодом из учебника. Что отсутствует? Конечно, в обоих случаях
process.stderr.write ("Почему вы пытаетесь меня убить?!? :-) ");
не выполняется Спасибо