콘솔을 통해 값을 입력 받는 모듈
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on("line", (x) => {
console.log(x);
rl.close();
}).on('close', () => {
process.exit();
});
가장 많이 쓰이는 코드로, 입력 받은 한 줄을 그대로 출력해주는 코드다.
const readline = require('readline');
//키워드 변수명 = require('모듈 이름');
변수명이나 모듈 이름은 변경해도 된다. 변수 키워드도 변경해도 되지만, 오류가 발생할 수 있는 var
보다는 let
이나 const
를 사용하는 걸 추천합니다.
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
createInterface()
메서드를 이용해 객체를 만들어 rl
변수에 저장합니다.
on
메서드를 이용하여 이벤트가 발생할 때 실행할 동작을 지정할 수 있습니다.
line
: 사용자가 콘솔에 입력을 할 때 발생하는 이벤트
입력 스트림에 줄바꿈을 나타내는 \n, \r, \r\n
등의 제어 문자가 나타나거나, 사용자가 Enter
또는 Return
을 누를 때 발생합니다.
close
: 입력 스트림을 종료하는 이벤트
더 이상 입력받을 것이 없을 때, rl.close()
를 호출하여 발생시킵니다.
on
메서드를 통해 line
이벤트와 close
이벤트를 사용한 코드는 다음과 같습니다.
/* 일반적인 함수 */
rl.on("line", function (x) {
rl.close(); //close가 없으면 입력을 무한히 받는다.
})
rl.on("close", function () {
// 입력이 끝난 후 실행할 코드
});
/* 화살표 함수 */
rl.on("line", (line) => {
rl.close();
});
rl.on('close', () => {
})