remove header X-powered-by Express using @types/express

1.1k Views Asked by At

I have to remove X-powered-by Express header, I found theses solution

app.disable('x-powered-by');

or

app.use(function (req, res, next) {
  res.removeHeader("X-Powered-By");
  next();
});

but in this project we don't use express in a basic way, we import Express this way in multiple files

import {Express} from 'express'; // @types/Express

and then we call Express.multer.file

I'm new on this project and also on backend development, so how can I remove this header using this way and not the basic way ?

4

There are 4 best solutions below

0
zedArt On BEST ANSWER

so, the solution I found was in loopback documentation - Express settings

I just add this to my rest config object :

  const config = {
    rest: {
      expressSettings: {
        'x-powered-by': false,
      },
      ...
      ...
    }
   }
2
akadirdev On

You can remove header in sequence.ts file like this.

export class MySequence extends MiddlewareSequence {
   async handle(context: RequestContext) {
      const res = context.response;
      res.removeHeader('X-Powered-By');

      await super.handle(context);
   }
}

or use helmet package for security of headers. thus remove headers telling how software is developed

2
robertklep On

You can still use it the "basic" way:

import express, { Express } from 'express';

const app: Express = express();

app.disable('x-powered-by');
0
Mechanic On

In case anyone looking for the way to disable it for tinyhttp:

import { App } from '@tinyhttp/app';

const app = new App({
  settings: {
    xPoweredBy: false
  }
});