Чтобы эта настройка работала, вам нужно изменить пару вещей.
Сначала вам понадобятся два отдельных приложения Express, одно для обработки перенаправлений, а другое для их получения.то есть 2 разных порта.
const app1 = express()
const app2 = express()
Тогда, конечно, в конце вы передадите их своим вспомогательным функциям:
startServerRedirect(3000, hostname, app1);
startServer(4000, hostname, app2);
Также, при вызове redirect
, сделайтеубедитесь, что вы используете полный URL с "http://" в этом случае, http://localhost:4000
Наконец, вы не хотите вызывать res.send
до res.redirect
. Причина в том, что res.send
запускаетответ, но res.redirect
устанавливает заголовки http. И любые заголовки http, которые вы устанавливаете, должны быть выполнены в первую очередь. Так что здесь, поскольку это просто информация, вы можете использовать console.log
вместо этого, если вы хотите проверить, как работает приложение:
app.get('/', (req, res) => {
console.log(`running server redirect on ${hostname} on port ${port}`);
res.redirect('http://localhost:4000');
});
Это входит в startServerRedirect
Что касается порта 80, я считаю, что вам нужен root-доступ для работы там, но это еще одна проблема ... (прокси nginx?)