Menu
CoddyTech

콜백

Coddy Node.js 여정의 Node.js 기초 섹션에 포함된 레슨. 24개 중 14번째.

큰 파일을 읽는 데는 시간이 걸리며, 파일을 기다리느라 멈춰 있는 프로그램은 그동안 다른 작업을 하지 못합니다.

fs.readFile(path, 'utf8', callback)은 읽기를 시작하고 즉시 반환합니다. 파일이 로드되면 Node가 (err, text)를 전달해 콜백을 호출합니다. 성공하면 err는 null이고, 그렇지 않으면 오류이므로 먼저 이를 확인하세요. 텍스트가 필요한 모든 작업은 콜백 안에 넣습니다.

import fs from 'node:fs';

fs.readFile('poem.txt', 'utf8', (err, text) => {
    if (err) {
        console.log('No poem today');
        return;
    }
    console.log(text.split('\n').length + ' lines');
});
console.log('Asked for the poem');

Asked for the poem이 먼저 출력됩니다. readFile 다음 줄은 파일이 아직 로드되는 동안 실행됩니다.

challenge icon

챌린지

쉬움
  • count.js는 Reading...을 출력한 다음, 콜백 내부에서 <n> notes를 출력하고, 이어서 콜백 내부에서 Done을 출력합니다.
  • 파일을 읽을 수 없으면 개수 대신 Cannot read <file>을 출력합니다.

node count.js를 실행한 다음, node count.js nothere.json을 실행하세요.

직접 해보기

import fs from 'node:fs';

const file = process.argv[2] ?? 'notes.json';

console.log('Reading...');
// fs.readFile과 콜백을 사용해 파일을 읽으세요.
// 노트의 개수를 출력한 다음 Done을 출력하세요.
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Node.js 기초의 모든 레슨