Node.js로 이름과 나이를 입출력 하는 콘솔 프로그래밍을 해보겠습니다.
https://www.youtube.com/watch?v=zQiriAmko1o
1. 1. 디렉토리 설정
프로젝트의 디렉토리 만들기 위해 터미널에서 mkdir 명령어나 편집기에서 폴더 생성 사용하여 아래의 구도 처럼 설정을 합니다.
<bash />input_output_program/ └── app.js
2. 2. 코드 설명
2.1. readline 모듈 불러오기
<javascript />
// app.js
const readline = require('readline');
Node.js 내장 모듈인 readline을 불러와서 사용자 입력을 처리합니다.
2.2. createInterface
<javascript />
// 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 참고 하세요
2.3. 사용자에게 질문하기
<javascript />
rl.question('당신의 이름은 무엇 입니까?', (name) => {
rl.question('당신의 나이은 어떻게 됩니까? ', (age) => {
console.log(`당신의 이름은 ${name}이고, 나이는 ${age} 입니다.`)
rl.close()
})
})
question 메서드는 사용자에게 질문을 출력하고 입력할 때까지 기다립니다. 사용자가 엔터키를 누르면 입력된 데이터가 콜백 함수로 전달됩니다. 다음은 question 기본 구문입니다.
<javascript />rl.question(query, callback);
- query(문자열): 사용자에게 보여질 질문 메세지이고 콘솔에 출력되며 사용자가 입력되기 전에 표시되니다.
- callback(함수): 사용자가 입력을 완료하고 엔터키를 누르면 호출되는 함수입니다. 이 함수는 사용자가 입력한 내용의 매개변수로 받습니다.
2.4. 인터페이스 종료
<javascript />rl.close();
생성된 readline 인터페이스를 종료 하는 역할입니다.
3. 3. 전체 코드
<javascript />
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