파일들을 펌핑하는 법은 아래와 같다.
(확장자 별로 분기하여 처리.. 이미지만 예를 들겠다)
이미지 뿐만아니라 동영상 등 여러 파일도 아래와 같이 쓰면 된다.
var fs = require('fs'), http = require('http'), util = require('util'), sys = require('sys'); var foo = function(req, response) { var url = req.url; // /img.jpg var ext = url.substring(url.lastIndexOf(".")+1); // jpg if (ext == "gif" || ext == "jpg") { fs.stat("public"+url, function(error, stat){ if (error) { throw error; } var rs; response.writeHead(200, { 'Content-Type' : 'image/' + ext, 'Content-Length' : stat.size, }); rs = fs.createReadStream("public" + url); // public/img.jpg을 읽는다 util.pump(rs, response, function(err) { if(err) { console.log("util.pump error"); throw err; } }); }); } } var httpServer = http.createServer(foo).listen(3000); |
util 대신 sys.pump 를 해도 똑같이 동작한다.
sys는 구버전이고 util이 최신거이므로 util로 써야한다.
둘은 비슷한 인터페이스를 쓰고 있다고한다.
'개발 > node.js' 카테고리의 다른 글
SPDY resource server push 하기 (2) | 2012.12.04 |
---|---|
jade] unexpected token "indent" Error (0) | 2012.12.03 |
HTML to jade convert. HTML을 jade로 변환하기 (0) | 2012.11.29 |
SPDY 테스팅 서버 node.js 세팅시 error 해결법 (0) | 2012.11.26 |