‘readline’
module provides an interface for reading data from a readable stream, one line
at a time.
Let’s
write a simple application, that reads data from standard input and write data
to standard output.
Step 1: Import the ‘readline’
module.
var
readline = require('readline');
Step 2: Create a new readline.Interface
instance that reads data from standard input and write data to standard output.
var
rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
Step 3: Ask the question and
read the answer from user.
rl.question('What
is your name? ', (answer) => {
console.log(`Hello: ${answer}, How are
you?`);
rl.close();
});
First
argument of question function, displays the question by writing it to the
standard output and waits for the user input. Once user enters the input, it invokes
the callback function by passing the user input as argument.
HelloWorld.js
/* Import readline module */ var readline = require('readline'); /* * create a new readline.Interface instance that reads data from standard input * and write data to standard output */ var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); /* Ask a question to the user */ rl.question('What is your name? ', (answer) => { console.log(`Hello: ${answer}, How are you?`); rl.close(); });
Output
What
is your name? Krishna
Hello:
Krishna, How are you?
Below
table summarizes the events provided by readline module.
S.No
|
Event
|
Description
|
1
|
Close
event is emitted in one of the following conditions.
a.
When rl.close() method is called and the
readline.Interface instance
b.
The input stream receives its 'end' event;
c.
The input stream receives <ctrl>-D to signal
end-of-transmission (EOT);
d.
The input stream receives <ctrl>-C to signal
SIGINT and there is no 'SIGINT' event listener registered on the
readline.Interface instance.
The
listener/callback function is called without passing any arguments.
|
|
2
|
line
event is emitted, whenever the input stream receives an end-of-line input
(\n, \r, or \r\n).
In
case of standard input, this event is fired, when user press <Enter>,
or <Return> keys.
|
|
3
|
The
'pause' event is emitted when one of the following occur:
a.
The input stream is paused.
b.
The input stream is not paused and receives the
'SIGCONT' event.
The
listener function is called without passing any arguments.
|
|
4
|
The
'resume' event is emitted whenever the input stream is resumed.
The
listener function is called without passing any arguments.
|
|
5
|
SIGCONT
|
The
'SIGCONT' event is emitted when a Node.js process previously moved into the
background using <ctrl>-Z (i.e. SIGTSTP) is then brought back to the
foreground.
The
'SIGCONT' event is not supported on Windows.
|
6
|
The
'SIGINT' event is emitted whenever the input stream receives a <ctrl>-C
input
|
|
7
|
SIGTSTP
|
The
'SIGTSTP' event is emitted when the input stream receives a <ctrl>-Z
input.
|
Below
table summarizes the functions provided my readline module.
S.No
|
Method and
Description
|
1
|
closes
the readline.Interface instance and relinquishes control over the input and
output streams. This method emits the close event.
|
2
|
pause
methog is used to pause the input stream, you can resume the stream by
calling resume() method.
|
3
|
rl.prompt
prompt the user with information. rl.prompt() will resume the input stream if
it has been paused.
|
4
|
This
method displays the query by writing it to the output, waits for user input
to be provided on input, then invokes the callback function passing the
provided input as the first argument
|
5
|
rl.resume()
The
rl.resume() method resumes the input stream if it has been paused.
|
6
|
This
method sets the prompt that will be written to output whenever rl.prompt() is
called.
|
7
|
This
method writes either data or a key sequence identified by key to the output.
The key argument is supported only if output is a TTY text terminal.
|
8
|
method
clears current line of given TTY stream in a specified direction identified
by dir.
|
9
|
The
readline.clearScreenDown() method clears the given TTY stream from the
current position of the cursor down.
|
10
|
This
method returns a new readline.Interface instance.
|
11
|
This
method moves cursor to the specified position in a TTY stream.
|
12
|
This
method causes the given Readable stream to begin emitting 'keypress' events.
|
13
|
This
method moves the cursor relative to its current position in a given TTY
stream.
|
No comments:
Post a Comment