Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node.js express, routers and compression

In a Node.js application based on express I load the compression middleware this way:

const express = require("express");
const compression = require("compression");
const app = express();
app.use(compression());

If I add a router to manage API requests should I load again compression in the router or its responses are already compressed?

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"));

Thanks for clarifying!

like image 309
SiliconValley Avatar asked Jun 26 '26 02:06

SiliconValley


1 Answers

No, you don't have to load the compression middleware into specific routes if you load it into your app.

  • Any middleware you load into your app will apply to all routes. These are application-level middleware.

    app.use(middleware)

  • Any middleware you use for specific routes will not apply for any other route. These are router-level middleware.

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

like image 85
maxpaj Avatar answered Jun 28 '26 18:06

maxpaj