[2분 이미지 포착] fs 대상

이걸 왜 써요?

  • Node.js로 서버를 만든 후 해야 할 일은 이것
  • 파일을 읽는 방법을 찾고 싶어서
  • fs 객체

  • 파일 시스템 객체
  • 파일을 처리하는 객체를 통해 HTML 파일 등을 읽을 수 있습니다!
  • 사용 방법


    남자는 묵묵히 그것을 변수로 읽었다
    var fs = require('fs');
    
    일단 이거만 쓰면 돼요.
    fs.readFile( './hello.html', 'UTF-8', コールバック関数 );
    
  • 첫 번째 매개 변수에 파일 경로를 지정합니다(예를 들어...'/hello.html')
  • 두 번째 매개변수에서 UTF-8 지정(이 경우 OK)
  • 제3 매개 변수에서 읽기 완료 후 처리하는 리셋 함수 정의
  • 리셋 함수

  • 리셋 함수, 이 파일의 읽기가 완료되면 발동!
  • 이 파일을 읽는 데 1시간이 걸리는 엄청난 파일이라고 가정하면
  • 1시간 후 리셋 함수 발동, 이후 쓴 원본 코드 드디어 읽을 수 있음
  •  
    예를 들면 계산하는 사람이 지갑을 찾느라 대오가 전진하기 어렵다

    하지만

  • 이렇게 하면 줄을 기다리고 싶지 않다
  • 그나저나 지갑을 찾는 데 한 시간이 걸렸고 점원도 기다렸는데... 가게로 어때요!
  • 그런 의견이 있어서.

    지갑 찾을 때 다음 분~

  • 지갑을 찾으면 계산(리셋 함수)으로 이체할 수 있도록 허락해 주십시오.
  • 찾고 계신다면 다음 고객(readFile 또는 더 높은 버전)부터 결제해 주십시오.
  • 단순 코드 예

    
    function doRequest(req, res) {
        //hello.htmlを読み込もう!
        fs.readFile('./hello.html', 'UTF-8', 
            // 読み込みが完了したら、コールバック関数が発動
            function(err, data) {
                res.writeHead(200, {'Content-Type': 'text/html'});
                // 読み込んだファイル(data)を書き込む
                res.write(data);
                res.end();
            });
    
        console.log('readFileのファイル読み込みが完了するまで、お待ちください');
        console.log('おや、このログを見ているということは、まだファイルの読み込みが完了していないようですね');
    }
    
  • hello.html 파일을 읽을 때 리셋 함수가 작동하지 않습니다.readFile 함수 아래에 있습니다.console.log 호출
  • 파일 읽기 완료 시 리셋 함수 발동
  • 여기서 탈선하다

  • 콜백 함수는 비동기식
  • 그러니까 새치기할 수 있다는 거야!
  • 지갑을 찾았을 때 맨 뒤에 서지 않아도 회계에 끼어들 수 있다는 인상
  • 그럼, 그것은 병행 처리입니까?

  • 아니요
  • 여러 작업을 병행 처리합니다.
  • 계산대가 많기 때문에 지갑을 찾는 사람들이 새치기할 걱정은 없다.동시 결제 가능
  • 참고 자료

  • JavaScript 비동기식 처리를 병렬 처리로 착각하십니까?
  • Node.js 스크립트의 기초를 기억하다
  • 좋은 웹페이지 즐겨찾기