Зачем нам нужен прокси на сервере express.js, чтобы функциональность сервера горячей перезагрузки веб-пакетов сочеталась с реакцией маршрутизации
Дополнительная информация: я пытаюсь сделатьэтот проект построен сmarty.js а такжесервер разработки веб-пакетов разрешить точки входа изреагируют-маршрутизатор так что он работает не только в \ path.
Таким образом, я учусьЭТОТ Ответы переполнения стека в течение всего дня, и я не могу понять логику следующего кода и почему этот ответ работает.
Ретози ответил:
Я настроил прокси для достижения этой цели:
У вас есть регулярный экспресс-веб-сервер, который обслуживает index.html на любом> маршруте, кроме случаев, когда это маршрут актива. если это актив, запрос перенаправляется на web-dev-сервер
Ваши активные горячие точки входа будут по-прежнему направлены непосредственно на сервер разработки веб-пакетов, поэтому горячая перезагрузка все еще работает.
Предположим, вы запустили webpack-dev-server на 8081, а ваш прокси на 8080.
Мой код выглядит сейчас так, но для того, чтобы он заработал, мне позже потребуется реализоватьMarty-экспресс, Чтобы реализовать это, я должен сначала понять ответ retonzis.
файл express.js
требования
'use strict';
var express = require('express');
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var config = require('../config.json');
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var proxy = require('proxy-middleware');
var url = require('url');
полномочие
var app = express(); //our express instance
// -------- my proxy----------------------
app.use('/assets', proxy(url.parse('http://localhost:8081/assets')));//but why do we need a proxy? This line really confuses me.
Marty-экспресс **
Я планирую использовать это сразу после того, как пойму этот пример, я просто надеюсь, что он передает реакционные маршруты в экспресс. **
//app.use(require('marty-express')({
// routes: require('../routes'),
// application: require('../application').Application
//}));
экспресс вещи
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/index.html');
});//if I got this straight this line just tells express to server my index.html file to all routes. My guess is this will be removed when I implement [marty-express][4].
2 сервера webpack-dev-server и экспресс
//----- my-webpack-dev-server------------------
var webpackServer = new WebpackDevServer(webpack(require('../../webpack.config')), {
contentBase: __dirname,
hot: true,
quiet: false,
noInfo: false,
publicPath: '/assets/',
stats: { colors: true }
});
//run webpack hot reload server on port 8081
webpackServer.listen(8081, 'localhost', function() {});
//run express server on port 8080
app.listen(8080);
Может ли кто-нибудь быть настолько любезным, чтобы объяснить мне эту концепцию, будто я вчера спустился с планеты Марс?
Я не понимаю две вещи:
Почему нам нужен проксиКак передать реакционные маршруты в экспресс, чтобы он обслуживал их на каждом маршруте при запросе.(pehapsMarty-экспресс помогает нам в этой задаче, но я думаю, что мы могли бы сделать это вручную без него)Бах ... Помоги мне выбраться из этого Документа дефицит АД !!! и, пожалуйста, будьте щедрыми в своем ответе. Помните, я только вчера приехал с Марса.
Спасибо..!