移除 header X-powered-by 表示使用@types/express

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

我必须删除 X-powered-by Express header,我找到了这些解决方案

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

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

但是在这个项目中我们并没有以基本的方式使用express,我们在多个文件中以这种方式导入Express

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

然后我们调用Express.multer.file

我是这个项目的新手,也是后端开发的新手,所以如何使用这种方式而不是基本方式删除这个 header?

您可以像这样删除 sequence.ts 文件中的 header。

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

      await super.handle(context);
   }
}

或使用 helmet 包来保证 header 的安全。因此删除 header 说明软件是如何开发的

您仍然可以按“基本”方式使用它:

import express, { Express } from 'express';

const app: Express = express();

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

所以,我找到的解决方案是 loopback documentation - Express settings

我只是将其添加到我的其余配置对象中:

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