[Javascript] readline 입력 받기

Kiara ·2023년 3월 15일
0

Javascript

목록 보기
2/6

💎 readline

콘솔을 통해 값을 입력 받는 모듈

💎 기본 구문

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를 사용하는 걸 추천합니다.

  • readline 인터페이스 객체 생성
  • const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout
    });

    createInterface() 메서드를 이용해 객체를 만들어 rl 변수에 저장합니다.

  • on 메서드를 이용하여 이벤트 실행
  • 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', () => {
    })

    Ref) jonghan 님의 벨로그
    profile
    Front/Back Beginner

    0개의 댓글