Событие для чтения нода stdin не вызвано
readable
событие не инициируется в process.stdin
test.js
var self = process.stdin, data ;
self.on('readable', function() {
var chunk = this.read();
if (chunk === null) {
handleArguments();
} else {
data += chunk;
}
});
self.on('end', function() {
console.log("end event",data )
});
Затем, когда я делаю node test.js
и начните вводить в консоли, readable
событие не вызвано вообще.
Подскажите пожалуйста как прикрепить readable
слушатель потока process.stdin.
1 ответ
Если вы пытаетесь захватить то, что вы печатаете на консоли, попробуйте эти шаги,
process.stdin.resume();
process.stdin запускается в состоянии паузы. Вам нужно привести его в состояние готовности. прослушайте событие "data", чтобы захватить данные, набранные в консоли.
process.stdin.on('data', function(data) {
console.log(data.toString());
});
Я не уверен, помогло ли это вашей реальной проблеме. Надеюсь, по крайней мере, это даст вам некоторое представление.
Дополнительная информация:
readable
событие представлено в Node.js v0.9.4. Поэтому убедитесь, что используемый вами узел - это gte 0.9.4.
Примечание от узла api docs:
Событие data генерирует либо Buffer (по умолчанию), либо строку, если используется setEncoding ().
Обратите внимание, что добавление прослушивателя событий "data" переключит поток Readable в "старый режим", где данные отправляются, как только они становятся доступными, вместо того, чтобы ждать, пока вы вызовете read () для его использования.