Node.js

[node.js] 클라이언트에서 요청이 있을때 파일 읽는 방법

Stater 2018. 12. 24. 15:25

[클라이언트에서 요청이 있을 때 파일 읽는 방법]


1. 파일을 읽기 위해 사용하는 readFile() 메소드 사용 또는 파일을 스트림 객체로 읽을 수 있다.

->무료 이미지는 아이콘파인더를 통해서 무료 이미지를 받을 수 있다.


2.require() 메소드를 통해서 fs모듈을 읽어들인다.


3. on 메소드를 통하여 호출하여 request() 이벤트를 처리한다.


4. 클라이언트의 요청이 들어오면 readFiel() 메소드로 사진 파일을 읽어들인다.


5. readFile()메소드는 비동기 방식으로 처리가 된다.


6. 파일을 모두 읽게되면 콜백 함수 안의 data 객체로 파일 내용이 전달된다.


7. 콜백함수 안에서는 응답 객체의 wirte()메소드를 사용해서 파일 내용을 클라이언트로 전송한다.


8.HTTP 헤더중에서 content-type값에 이미지임을 인식 할 수 있어서 type 값을 통해 이미지임을 구분 지어서 데이터를 인식 할 수 있다.


9. 해당 파일을 실행시켜서 접속해서 파일의 결과를 확인한다.


Do it Node.js의 소스를 참고했습니다.


var http=require('http');
var fs=require('fs');

var server=http.createServer();
server.listen(port,function(){
console.log('서버시작 %d',port);
});

var port=3000;


//클라이언트 요청 이벤트 처리

server.on('request',function(req,res){

console.log('클라이언트 요청이 들어왔습니다.');

var filename='house.png';

fs.readFile(filename,function(err,data){
res.writeHead(200,{"Content-Type":"image/png"});
res.write(data);
res.end();
});
});



하나하나!

MIME Type이란? 

Multipurpose Internet Mail Extensions의 약어로 메시지의 내용이 어떤 형식인지 알려주기 위해 정의 한 것들을 나타낸다. 

아래의 값을 Content-Type를 통해서 헤더 값만 적잘한 MIME-Type 값으로 설정하면 된다.


Content Type의값 

설명 

text/plain 

일반 텍스트 문서 

text/html 

HTML문서 

text/css 

css문서 

text/xml 

xml문서 

image/jpeg,image/png 

jpeg파일 png파일 

video/mpeg, audio/mp3 

mpeg 비디오 파일, mp3음악파일 

application/zip 

zip 압축파일 


반응형