Standard input and output
We can use process
to print something on the terminal, like console.log
.
process.stdout.write("Hello ");
process.stdout.write("Node.js !\n");
Hello Node.js !
Example
const questions = [
"What is your name?",
"How old are you?",
"What is your mother tongue?"
]
const ask = (index = 0) => {
process.stdout.write(`${questions[index]} \n-:>`);
}
ask();
const ans = [];
process.stdin.on("data", data => {
ans.push(data.toString().trim());
if (ans.length < questions.length) {
ask(ans.length);
} else {
process.exit();
}
});
process.on('exit', () => {
const [name, age, lang] = ans;
console.log(`Hey ${name}, so you are ${age} years old and you can speak ${lang}.`)
});
Timer
const waitTime = 5000; // time is in millisecond
const waitInterval = 500;
let currentTime = 0;
const incTime = () => {
currentTime += waitInterval;
const pc = Math.floor(currentTime/waitTime*100);
process.stdout.clearLine();
process.stdout.cursorTo(0);
process.stdout.write(`Waiting... ${pc}%`);
};
console.log(`Setting a waiting time of ${waitTime/1000} seconds.`);
const timerFinished = () => {
clearInterval(interval);
process.stdout.clearLine();
process.stdout.cursorTo(0);
console.log("Done.");
};
const interval = setInterval(incTime, waitInterval);
setTimeout(timerFinished, waitTime);