Node.JS Поток ввода данных - PullRequest
1 голос
/ 25 июля 2011

Есть ли расширение входного потока, чтобы я мог вызывать методы, к которым я привык

Например

stdin.readData(function (err, buffer) { // err if an error event was created, buffer if this is just data, null to both if the end of the stream was reached.
    // Added bonuses would be other methods I am used to in Java
    // - readLine
    // - readFully
    // - readStringUtf8
    // - readInt, readDouble, readBoolean, etc.
})

Бэкэнд будет прослушивать события data, end и error и автоматически их буферизировать, и они будут доступны только для вызова readData.

1 Ответ

2 голосов
/ 25 июля 2011

Эта функция не сложна. Все, что вам нужно сделать, это получить прототип ReadableStream и реализовать метод .read

Не проверенный код:

var ReadableStream = Object.getPrototypeOf(process.stdin);

ReadableStream.read = function(cb) {
    this.on('data', function(buf) {
        cb(null, buf);
    });

    this.on('error', function(err) {
        cb(err, null);    
    });

    this.on('end', function() {
        cb(null, null);
    });

    this.on('close', function() {
        cb(new Error("Stream closed"), null);
    });
};
...