본문 바로가기

프로그래밍/Node.js

Node.js 입력받기

Node.js에서 콘솔로 입력을 받을 일은 별로 많지 않겠지만, 각종 사이트들에서 알고리즘 문제를 풀거나 가끔 사용될 일이 있다는걸 충분히 저도 느끼기에, Node.js에서 입력을 받는 방법을 올려보려 합니다.

간단히 모듈을 이용해서 구현할 수 있습니다. 그럼 알아보시죠.




process.std는 그만!

readline 모듈 사용하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const readline=require("readline");
 
const rl=readline.createInterface({
  input:process.stdin,
  output:process.stdout
});
 
rl.setPrompt("## ");
 
rl.prompt();
rl.on("line",(data)=>{
  console.log(data);
  rl.prompt();
});
 
cs


readline은, 기존의 귀찮은 입력 이벤트처리를 버리고, 새롭고 편리하게 입력 기능을 재구성한 모듈입니다. 먼저 readline 모듈을 로딩해주고, 거기에 Object 형식으로 input, output을 각각 넣어서 createInterface를 해주면 됩니다.

이제, 저렇게 생성된 객체에서 마음껏 함수를 사용하면 됩니다.


주요 함수


setPrompt는 cmd의 " > " 같은 앞에 뜨는 문구를 설정
하고,

prompt는 입력을 받고,

on은 특정 이벤트에 대한 처리를 합니다. ( 저기에선, line이라는 이벤트가 입력받은 값과 같이 콜백함수를 작동시킵니다. )


사용자가 입력한 값을 console.log로 출력합니다. 잘 작동합니다!




Node.js의 기존 방법은 상당히 귀찮았던걸로 기억을 하는데, 이 기능은 생각보다 훨씬 간단하고 빠르게 쓸 수 있는 것 같습니다. 앞으로는 이걸로 Node.js를 활용해 알고리즘 문제를 풀 수 있겠네요.

그럼, 이만.




+ Node.js는 원래 주로 이벤트를 이용해 작동하지만, 여기에서는 그렇게 안하는 것도 괜찮았을것 같습니다. 그냥 블로킹되게.. printf마냥 말이죠.

'프로그래밍 > Node.js' 카테고리의 다른 글

Node.js agar.io 서버 열기  (1) 2018.01.18
Electron 배경 투명하게 설정하는법  (0) 2017.12.14