@ rob ответ будет работать большую часть времени, но он может работать не так, как вы ожидаете при длинных входах.
Это то, что вы должны использовать вместо:
const stdin = process.openStdin();
let content = '';
stdin.addListener('data', d => {
content += d.toString();
});
stdin.addListener('end', () => {
console.info(`Input: ${content}`);
});
Объяснение того, почему работает это решение:
addListener('data')
работает как буфер, обратный вызов будет вызываться, когда он заполнен или / и это конец ввода.
А как насчет длинных входов? Одного обратного вызова 'data'
будет недостаточно, поэтому вы получите входные данные, разделенные на две или более частей. Это часто не удобно.
addListener('end')
сообщит нам, когда программа чтения с stdin закончит чтение нашего ввода. Поскольку мы хранили предыдущие данные, теперь мы можем читать и обрабатывать их все вместе.