Узел с Vue, разные порты для запросов и API - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть проект, который основан на узле и имеет Vue в качестве внешнего интерфейса.

В моем приложении. js Файл в узле у меня есть

if(process.env.NODE_ENV === 'production'){
    //static folder
    app.use(express.static(path.join(__dirname,'public'))); 
    //handle SPA
    app.get(/.*/, (req, res)=>{
        res.sendFile(__dirname + '/public/index.html');
    });
}

а затем

const port = process.env.PORT || 4000;
app.listen(port, ()=>{
    console.log('Server runs on port ', port);
});

Итак, узел прослушивает порт 4000 и все входящие запросы (от порта 4000) go до '/public/index.html' на обслуживание vue

В моем vue.config.js У меня есть

const path = require('path');

module.exports = {
    outputDir : path.resolve(__dirname, '..public'),
    devServer:{
        proxy:{
            '/*':{
                target:'http://localhost:5000'
            }
        }
    }
}

Пока все работает нормально, но, пожалуйста, помогите мне понять следующее

Как я могу заставить узел слушать порт (например, 80), а затем все другие узлы конечные точки API в другом порту (например, 4000)?

Я хочу, чтобы все входящие запросы поступали на go на порт 80, затем все равно go на '/public/index.html', так что Vue может вступить во владение.

Но конечные точки узла Vue используются для получения и отправки данных, я хочу, чтобы они все еще были в порту 4000, const basicUrl = 'http://awesomeness:4000/';

Как я могу это сделать?

Спасибо

1 Ответ

1 голос
/ 13 февраля 2020

Возможно, вам потребуется создать приложение 2 express, как показано в ссылке ниже:

NodeJS Express - отдельные маршруты на два порта

Первый прослушивает порт 80 и возвращает индексный файл. html.

Другой прослушивает 4000 и обрабатывает запрос из приложения Vue.

...