Input Of Information Into Javascript Using Terminal
Solution 1:
When running your program with redirected stdin, you're connected to a ReadStream, not a TTY, so TTY.setRawMode() isn't supported.
setRawMode() is used to set a tty stream so that it does not process its data in any way, such as providing special handling of line-feeds. Such processed data is referred to as being "cooked".
Standard node ReadStreams are, by definition, already "raw" in that there is no special processing of the data.
So, refactor your code without the call to setRawMode() and it should work fine.
Solution 2:
This is how I process data from STDIN in Node:
function readStream(stream, callback) {
var data = '';
stream.setEncoding('utf-8');
stream.on('data', onData);
stream.on('end', onEnd);
function onData(chunk) {
data += chunk;
}
function onEnd() {
stream.removeListener('end', onEnd);
stream.removeListener('data', onData);
callback(data);
}
}
The error message in your questions (the "undefined is not a function") error means you were trying to call a method on stdin
that doesn't exist. I couldn't find a mention of setRawMode
in a cursory scan of the docs. Perhaps you are using an outdated API? I recall having to unpause STDIN (old-style streams) is deprecated.
Post a Comment for "Input Of Information Into Javascript Using Terminal"