3 min read
•Question 17 of 62easyHow to read user input with the Readline module?
Interactive command-line input handling.
What You'll Learn
- Reading user input
- Creating interactive prompts
- Line-by-line file reading
Basic Usage
code.jsJavaScript
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('What is your name? ', (name) => {
console.log(`Hello, ${name}!`);
rl.close();
});Promise-based (Node 17+)
code.jsJavaScript
const readline = require('readline/promises');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const name = await rl.question('What is your name? ');
console.log(`Hello, ${name}!`);
rl.close();Multiple Questions
code.jsJavaScript
async function prompt(question) {
return new Promise((resolve) => {
rl.question(question, resolve);
});
}
async function main() {
const name = await prompt('Name: ');
const age = await prompt('Age: ');
console.log(`${name} is ${age} years old`);
rl.close();
}Read File Line by Line
code.jsJavaScript
const fs = require('fs');
const readline = require('readline');
const rl = readline.createInterface({
input: fs.createReadStream('file.txt'),
crlfDelay: Infinity
});
for await (const line of rl) {
console.log(line);
}