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;我不想要阈值,否则我会在配置中指定它