Tuesday, 2 October 2018

node.js: readline.createInterface(options)

readline.createInterface(options)
This method returns a new readline.Interface instance.

Below table summarizes all the options associated with createInterface method.

Option
Type
Description
input
stream.Readable
The Readable stream to listen to.
output
stream.Writable
The Writable stream to write readline data to.
completer
Function
An optional function used for Tab autocompletion
terminal
boolean
true, if the input and output streams should be treated like a TTY, and have ANSI/VT100 escape codes written to it. Default: checking isTTY on the output stream upon instantiation.
historySize
number
Maximum number of history lines retained. To disable the history set this value to 0. This option makes sense only if terminal is set to true by the user or by an internal output check, otherwise the history caching mechanism is not initialized at all. Default: 30.
prompt
string
The prompt string to use. Default: '> '.
crlfDelay
number
If the delay between \r and \n exceeds crlfDelay milliseconds, both \r and \n will be treated as separate end-of-line input. crlfDelay will be coerced to a number no less than 100. It can be set to Infinity, in which case \r followed by \n will always be considered a single newline (which may be reasonable for reading files with \r\n line delimiter). Default: 100.
removeHistoryDuplicates
boolean
If true, when a new input line added to the history list duplicates an older one, this removes the older line from the list. Default: false.

Find the below working application.

HelloWorld.js
const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.setPrompt("This is an echo application...Type something.......\n");
rl.prompt();
rl.on('line', (data) => {
  console.log(`Received: ${data}`);
});

Output

This is an echo application...Type something.......
Hello
Received: Hello
How Are You..........
Received: How Are You..........


Previous                                                 Next                                                 Home

No comments:

Post a Comment