Node.js express,路由和压缩

3
在基于express的Node.js应用程序中,我以以下方式加载压缩中间件:
const express = require("express");
const compression = require("compression");
const app = express();
app.use(compression());

如果我添加一个路由来管理API请求,那么我是否需要在路由中再次加载压缩,还是它的响应已经被压缩了?
const router = express.Router();
router.use(compression()); // Is this needed or not?

router.get(...); // and all other API methods
app.use("/api", router);

app.use("/", express.static("./pages"));

感谢您澄清!
2个回答

5
不,如果将 compression 中间件加载到应用程序中,就不必将其加载到特定路由中。
  • 您加载到应用程序中的任何中间件都将适用于所有路由。这些是 应用程序级别的中间件

    app.use(middleware)

  • 您为特定路由使用的任何中间件都不会应用于其他任何路由。这些是 路由级别的中间件

    router.get('/route', middleware, ...)


0

没有必要再次加载压缩。

来自compression npm examples

express/connect

When using this module with express or connect, simply app.use the module as high as you like. Requests that pass through the middleware will be compressed.

var compression = require('compression')
var express = require('express')

var app = express()

// compress all responses
app.use(compression())

// add all routes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接