2016-07-02 1 views
0

gzip이 내 읽기 스트림에 적용되지 않고 어떤 이유인지 모르겠습니다.`fs.createReadStream`에서 Gzip이 작동하지 않습니다

내가 작성한 기능은 다음과 같습니다. body은 항상 fs.createReadStream의 스트림이거나 원시 문자열입니다. gzip은 문자열을 전달할 때 적용되지만 스트림을 사용할 때는 적용되지 않습니다.

export function send(res, code, body) { 
    res.setHeader('Content-Encoding', 'gzip'); 
    res.writeHead(code); 

    if(body instanceof Stream) { 
    body.pipe(zlib.createGzip()); 
    body.pipe(res); 
    return; 
    } 

    body = zlib.gzipSync(body); 

    res.end(body); 
} 

나는 크롬이 오류가 발생합니다 :

ERR_CONTENT_DECODING_FAILED 

어떤 생각?

답변

2

body.pipe(zlib.createGzip()).pipe(res);이어야하며 원본 스트림을 보내야합니다.

관련 문제