반응형
Node.js로 이름과 나이를 입출력 하는 콘솔 프로그래밍을 해보겠습니다.
https://www.youtube.com/watch?v=zQiriAmko1o
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
반응형
'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 |