Javascript 如何在Sails.js应用程序中禁用或替换X-Powered-By标头

Javascript 如何在Sails.js应用程序中禁用或替换X-Powered-By标头,javascript,express,http-headers,sails.js,Javascript,Express,Http Headers,Sails.js,当我运行Sails.js应用程序时,它会自动向每个响应添加以下HTTP头:X-Powered-By:“Sails” 可以禁用或覆盖它吗?是的,很有可能 您需要禁用名为poweredBy的Sails中间件,并告诉Express.js服务器不要添加自己的头 只需将config/http.js配置文件更新为如下所示: module.exports.http = { middleware: { disablePoweredBy: function(request, response, ne

当我运行Sails.js应用程序时,它会自动向每个响应添加以下HTTP头:
X-Powered-By:“Sails”


可以禁用或覆盖它吗?

是的,很有可能

您需要禁用名为poweredBy的Sails中间件,并告诉Express.js服务器不要添加自己的头

只需将
config/http.js
配置文件更新为如下所示:

module.exports.http = {
  middleware: {

    disablePoweredBy: function(request, response, next) {
      var expressApp = sails.hooks.http.app;
      expressApp.disable('x-powered-by');
//    response.set('X-Powered-By', 'One Thousand Hamsters');
      next();
    },

    order: [
//    ...
//    'poweredBy',
      'disablePoweredBy',
//    ...
    ]
  }
};
在这里,我们从Sails hooks检索的实例,然后使用它的方法将
x-powered-by
配置参数设置为
false
值。这将防止标题出现

为了启用这个定制中间件,您需要将它添加到
order
数组中。您可以将
poweredBy
中间件替换为
disablePoweredBy


另外,通过取消注释
response.set()
方法,您可以设置自己的标题值。

编辑
config/http.js
并将
poweredBy
设置为
false

module.exports.http = {
  middleware: {
    poweredBy: false
  }
}

由于express X-Powered-By标头,因此无需手动禁用它。

无需创建新的中间件,例如,您可以超越Sails.js的poweredBy中间件

module.exports.http = {
  middleware: {
    poweredBy:  function (req, res, next) {
      // or uncomment if you want to replace with your own
      // res.set('X-Powered-By', "Some Great Company");      
      return next();
    }
  }
}

这在sails v 0.12上非常有效。这应该是公认的答案