json 响应未在 Express 中压缩

Don*_*al0 2 compression node.js express

我使用压缩库来压缩我所有的快速响应。不幸的是,似乎没有任何响应被压缩。然而,我在客户端调用标头中指定了接受编码:“gzip”。这是代码:

正面:

export const api = ax.create({
  baseURL: "http://localhost:8000",
  timeout: 1000,
  withCredentials: true,
  headers: {
    'Accept-Encoding': 'gzip',
  }
});

const contact = () => {
    api.get("/contact")
    .then(res=> console.log("contact response", res))
    .catch(err=> console.log("contact err", err))
  }
Run Code Online (Sandbox Code Playgroud)

后退:

const app = require("express")();
const cors = require("cors");
const compression = require("compression")

app.use(cors({ credentials: true, origin: ["http://localhost:3000"] }));
app.use(compression());


app.get('/contact',  (req, res) => {
    res.status(200).json({hello: "world"})
  })
Run Code Online (Sandbox Code Playgroud)

在 Chrome 网络选项卡中,我没有内容编码:gzip。如何解决这个问题?

Kei*_*eno 8

压缩的默认阈值是 1kb()。如果您的请求低于 1kb,则不会被压缩。

如果需要,您可以修改阈值并将其设置为 0 字节。

app.use(compression({
  threshold: 0
}));
Run Code Online (Sandbox Code Playgroud)