2013-08-25 6 views
8

원격 이미지를 읽고 표시하고 싶습니다. 파일을 저장할 수는 있지만 코드를 표시 할 수는 없습니다. 이상적으로는 처리하지 않고 파일을 전달하려고합니다. tmp 파일 단계가 필요한지 확실하지 않습니다. 이 코드는 아무 것도 표시하지 않고 오류도 표시하지 않습니다. 나는 res.pipe (응답)도 시도했다.ExpressJS에서 배관 원격 파일

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename 

var request = http.get(url, function(response) { 

    var tmp = path.join(require('os').tmpDir(), filename); 

    var outstream = require('fs').createWriteStream(tmp); 

    response.pipe(outstream); 
    response.on('end', function() { 
    res.set('Content-Type', 'image/jpg'); 
     res.pipe(outstream); 
     res.end(); 
    }); 
}); 

답변

12

것은 잘 나는 여전히 위의 작업을하는 방법을 알고 싶습니다하지만 난 request 모듈과 한 줄에 내 문제를 해결!

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename 
require('request').get(url).pipe(res); // res being Express response 
+2

이것은 훨씬 좋습니다. 디스크에 파일을 저장하지 않습니다. 'response.pipe (outstream); 다음에 응답을 저장하려면'createreadstream'으로 파일을 다시 열고'res'로 파이프해야합니다. 질문에서 당신은'res.pipe (outstream);을했다. 이것은 실수 다. 파일을'res'로 파이프해야합니다. – user568109

+0

나는이 대답을 좋아한다 : http://stackoverflow.com/questions/11355366/nodejs-redirect-url – Ron