Javascript 我返回的数据没有用connect.compress()压缩
我正在尝试使用Javascript 我返回的数据没有用connect.compress()压缩,javascript,node.js,gzip,connect,Javascript,Node.js,Gzip,Connect,我正在尝试使用connect.compress()中间件将我的响应gzip到客户端。我能够部分地让它工作,但是当我使用res.end添加我自己的响应时,响应不再是gzip gzip响应: app = connect() .use(connect.compress()) .use(connect.query()) .use(connect.json()); app = connect() .use(connect.compress())
connect.compress()
中间件将我的响应gzip到客户端。我能够部分地让它工作,但是当我使用res.end
添加我自己的响应时,响应不再是gzip
gzip响应:
app = connect()
.use(connect.compress())
.use(connect.query())
.use(connect.json());
app = connect()
.use(connect.compress())
.use(connect.query())
.use(connect.json())
.use(function (req, res) {
res.end('hello');
});
非gzip响应:
app = connect()
.use(connect.compress())
.use(connect.query())
.use(connect.json());
app = connect()
.use(connect.compress())
.use(connect.query())
.use(connect.json())
.use(function (req, res) {
res.end('hello');
});
我希望能够用我自己的邮件回复,但仍然有Gzip内容。尝试替换以下内容:
res.end('hello')代码>
为此:
res.end(new Buffer('hello', 'utf8'));
如果这样做有效,那可能是您的connect中间件版本中的一个bug。我对小型HTTP响应体也有同样的问题。如果响应正文的内容长度不被压缩,且没有任何警告(请参阅)
解决方案是禁用阈值
app.use(connect.compress({ threshold: false }));
作为连接的新玩家,我希望API能够记录默认值(即:不指定默认为1024字节的阈值)。我个人认为,不指定阈值应该默认为0;我不想要阈值,否则我会在配置中指定它