본문 바로가기

JavaScript

[JavaScript] 콘솔로 입력받기

자바스크립트를 하면 콘솔로 입력 받을 경우가 많지는 않다. 

( 아닐수도 있지만 본인이 느끼기엔 ㅋㅋ )

 

막상 필요해서 어떤 방식으로 구현할까 고민하던 중에 readline 이라는 패키지를 찾았다. 

 

const readline = require('readline');

const rl = redline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('What do you think of Node.js? ', (answer) => {
  console.log(`Thank you for your valueable feedback: ${answer}`);
  
  rl.close();
});

간단하게 콘솔을 통해서 데이터를 입력 받을 수 있는 패키지다. 

실행하면 콘솔을 통해 입력하기 전까지 기다리고 있다가 입력을 하면 콜백함수가

동작해서 이어서 진행한다. 

 

question 이라는 함수는 입력을 받을 때 앞에 질문 형식으로 템플릿을 작성할 수 있다. 

 

rl.setPrompt(
    "Something ~~ ? > "
  );

  rl.prompt();

  rl.on("line", async (answer) => {
   
    // ...

		if(~~) process.exit();

    rl.prompt();
  });

setPrompt는 질문의 형식만 미리 템플릿으로 지정하는 함수이고 

prompt는 입력을 받기 시작하는 함수이다. 

on은 입력을 받을 때 받는 방식을 결정하는데, 매개변수로 line은 한 줄만 입력받는 것이다. 

 

반응형