Не могу отключить X-Powered-By: Express - PullRequest
0 голосов
/ 07 января 2019

Я пытался использовать это, но это не сработало: app.disable("x-powered-by"); и я прочитал пост, как это:

как удалить X-Powered-By в ExpressJS

Не удается избавиться от заголовка X-Powered-By: Express

Я использую «экспресс»: «^ 4.16.4» в качестве бэкэнда. во внешнем интерфейсе я использую «реакция»: «^ 16.7.0» одностраничное приложение.

UPDATE

express.js в порту 5000 response.js в порту 3000

когда я пытаюсь нажать на этот URL http://localhost:5000/api/product x-powered-by :express больше нет.

в моем приложении реакции, когда я пытаюсь нажать API http://localhost:5000/api/product, оно снова будет отображаться x-powered-by:express.

Каждый раз, используя API http://localhost:5000/api/product, что означает node.js / экспресс-сервер, который я получил x-powered-by : express

Cant Disable X-powered-by express

но когда я пытаюсь console.log(app); я получаю это:

          settings:
[0]       { 'x-powered-by': false,
[0]         etag: 'weak',
[0]         'etag fn': [Function: generateETag],
[0]         env: 'development',
[0]         'query parser': 'extended',
[0]         'query parser fn': [Function: parseExtendedQueryString],
[0]         'subdomain offset': 2,
[0]         'trust proxy': false,
[0]         'trust proxy fn': [Function: trustNone],
[0]         view: [Function: View],
[0]         views: 'D:\\WEBSITE\\hammerstout_nodejs_client\\views',
[0]         'jsonp callback name': 'callback' } }, 

'x-powered-by': false, это должно работать?

Код

import express from 'express';
import bodyParser from 'body-parser';
// import passport from 'passport';
import connection from './config/conn';
import { CategoryRoutes,ProductRoutes } from './modules';
import session  from 'express-session';
const app = express();
app.disable("x-powered-by");
console.log(app);
app.use(session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true,
    cookie: { secure: true }
}))

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// app.use(passport.initialize());

app.use('/api/', [CategoryRoutes, ProductRoutes]);


const port = process.env.PORT || 5000;
app.listen(port, (err) => {
    if(err){
        console.log(err);
    }else{
        console.log(`Server running on port ! ${port}`);
    }

});

Ответы [ 2 ]

0 голосов
/ 12 января 2019

У меня такой же эффект с моим угловым приложением. Я использую угловой прокси (который в конце концов является webpack-dev-server) для доступа к моему серверу (во избежание проблем с CORS).

Ответы не содержат заголовок «x-powered-by», когда я получаю доступ к REST-API на моем сервере (на порту 3000) с почтальоном или браузером. Доступ к тому же серверу через мое угловое приложение (через порт 4200) через прокси показывает заголовок.

Мои выводы: webpack-dev-server использует express в качестве основы; поэтому я предполагаю, что «ошибочный» заголовок связан с прокси-сервером, а не с вашего сервера на порту 3000.

0 голосов
/ 07 января 2019

app.disable("x-powered-by"); - правильный способ отключить пользовательский заголовок в экспрессе 4.16.4. Вот рабочий пример с экспрессом 4.16.4 и узлом 10.14.2:

const express = require('express');
const app = express();

app.disable("x-powered-by");
app.get('/', function(req, res) {
  res.status(200);
  res.send("hello\n\n");
  res.end();
});
app.listen(9876, function() {
  console.log('ready');
});

выполнение этого из командной строки, затем вызов curl -i http://localhost:9876/ приводит к следующему выводу:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 7
ETag: W/"7-RYgBn9PSVn8wOBXbat/kibLuX5I"
Date: Mon, 07 Jan 2019 03:24:09 GMT
Connection: keep-alive

hello
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...