我使用“下一步”创建了一个网络应用,并且我想从响应标头中删除x-powered-by
,我尝试创建自定义服务器并使用expressjs .disable('x-powered-by')
,但它没有'工作。
这就是我所做的:
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare()
.then(() => {
const server = express()
.use(handle)
server.disable('x-powered-by'); // ???
server.listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
})
答案 0 :(得分:1)
好吧,如果您不想返回此标题,则必须简单地编写
res.removeHeader('header-name'); //any header that you want to remove
所以你需要写
res.removeHeader('X-Powered-By');
终点
答案 1 :(得分:1)
以下代码有效。你在这里做的是正确的从Express中删除X-Powered-By标题。因为您使用的是Next,所以需要禁用 Next和Express X-Powered-By标头。
我没有找到来自Next的api禁用。但您可以直接更改对象app.config.poweredByHeader = false
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.config.poweredByHeader = false
app.prepare()
.then(() => {
const server = express().use(handle)
server.disable('x-powered-by'); // This disables Express Header
server.listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
})
答案 2 :(得分:1)
现在很简单。
默认情况下,Next.js 将添加 x-powered-by 标头。要选择退出,请打开 next.config.js 并禁用 poweredByHeader 配置:
module.exports = {
poweredByHeader: false,
}
见 - https://nextjs.org/docs/api-reference/next.config.js/disabling-x-powered-by
答案 3 :(得分:0)
对我来说,当我使用server.disable('x-powered-by');
时,最终以Next.js 7.0.2
作为x-powered-by
的值。
在next.config.js
中的行下面添加应该可以
module.exports = {
poweredByHeader: false,
...
}
或
const app = next({ dev, xPoweredBy: false })