IdoCleanCode
article thumbnail
반응형

 

Node.js로 이름과 나이를 입출력 하는 콘솔 프로그래밍을 해보겠습니다.

https://www.youtube.com/watch?v=zQiriAmko1o

[Node.js] 간단한 입출력 콘솔 프로그램

 

1. 디렉토리 설정

프로젝트의 디렉토리 만들기 위해 터미널에서 mkdir 명령어나 편집기에서 폴더 생성 사용하여 아래의 구도 처럼 설정을 합니다.

input_output_program/
└── app.js

 

2. 코드 설명

readline 모듈 불러오기

// app.js

const readline = require('readline');

Node.js 내장 모듈인 readline을 불러와서 사용자 입력을 처리합니다.

 

createInterface 

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

createInterface메서드는 입출력을 처리할 인터페이스를 생성합니다. 이 메서드는 두개의 매개변수 input과 output을 받습니다.

  • input: procsess.stdin
    process.stdin은 사용자가 키보드를 입력하는 데이터를 받을 수 있는 채널입니다. 사용자가 터미널에서 입력한 내용을 엔터키로 제출하면, 이 데이터가 프로그램을 통해 전달됩니다.
  • output: process.stdout
    process.stdout은 프로그램이 사용자에게 결과를 출력하는 채널입니다. 이를 통해 프로그램은 입력한 정보를 터미널에 출력할 수 있습니다.

자세한 내용은 https://nodejs.org/dist/latest-v18.x/docs/api/readline.html#readlinepromisescreateinterfaceoptions 참고 하세요

 

사용자에게 질문하기 

rl.question('당신의 이름은 무엇 입니까?', (name) => {
    rl.question('당신의 나이은 어떻게 됩니까? ', (age) => {
        console.log(`당신의 이름은 ${name}이고, 나이는 ${age} 입니다.`)
        rl.close()
    })
})

question 메서드는 사용자에게 질문을 출력하고 입력할 때까지 기다립니다. 사용자가 엔터키를 누르면 입력된 데이터가 콜백 함수로 전달됩니다. 다음은 question 기본 구문입니다.

rl.question(query, callback);
  • query(문자열): 사용자에게 보여질 질문 메세지이고 콘솔에 출력되며 사용자가 입력되기 전에 표시되니다.
  • callback(함수): 사용자가 입력을 완료하고 엔터키를 누르면 호출되는 함수입니다. 이 함수는 사용자가 입력한 내용의 매개변수로 받습니다.

 

인터페이스 종료

rl.close();

생성된 readline 인터페이스를 종료 하는 역할입니다.

 

3. 전체 코드

const readline = require('readline')

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

rl.question('당신의 이름은 무엇 입니까?', (name) => {
    rl.question('당신의 나이은 어떻게 됩니까? ', (age) => {
        console.log(`당신의 이름은 ${name}이고, 나이는 ${age} 입니다.`)
        rl.close()
    })
})

 

https://idocleancode.tistory.com/436

 

[Node.js] 학습 로드맵

Node.js 소개Node.js 이란?Node vs Browsernode.js실행모듈코드의 재사용성과 관리 용이성을 위해 독립적인 파일로구성된 자바스크립트 구성 요소 입니다.ESMCommonJs콘솔 프로그래밍간단한 I/O 프로그램참고

idocleancode.tistory.com

 

반응형

'Tutorials > Node' 카테고리의 다른 글

[Exprss.js] 서버에서 시간 정보 받아오기  (1) 2024.10.22
[Express.js] Project Setting  (1) 2024.10.13
[Node.js] CommonJS  (1) 2024.10.06
[Node.js] ESM  (1) 2024.10.06
[Node.js] Node.js 실행  (0) 2024.10.06
profile

IdoCleanCode

@IdoCleanCode

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!