When accept-encoding is gzip, we need to set the content-type to text/plain.
this.response.set('Content-Encoding', 'gzip');
this.response.body = yield gzip('hello world');
The above code would fail the test because, when content-enconding is gzip, the default content-type is application/octet-stream.
Adding the content-type assignment would solve the problem.
this.response.set('Content-Encoding', 'gzip');
this.response.set('content-type', 'text/plain');
this.response.body = yield gzip('hello world');
It takes me a lot time to understand what this chapter is focusing on.
Here is one solution in case anyone need.
app.use(function* () {
const ae = this.request.acceptsEncodings('gzip', 'identity');
switch (ae) {
case 'gzip':
this.response.set('Content-Encoding', 'gzip');
this.response.set('content-type', 'text/plain');
this.response.body = yield gzip('hello world');
break;
case 'identity':
this.response.set('Content-Encoding', 'identity');
this.response.body = 'hello world';
break;
default:
break;
}
});
When
accept-encodingisgzip, we need to set thecontent-typetotext/plain.The above code would fail the test because, when
content-encondingisgzip, the defaultcontent-typeisapplication/octet-stream.Adding the
content-typeassignment would solve the problem.It takes me a lot time to understand what this chapter is focusing on.
Here is one solution in case anyone need.