¿Por qué necesitamos un proxy en un servidor express.js para obtener la funcionalidad del servidor de recarga en caliente de webpack combinada con enrutamiento de reacción

Información opcional: estoy tratando de hacereste proyecto construido conmarty.js yservidor de desarrollo webpack permitir puntos de entrada desdeenrutador de reacción para que funcione en más que solo la \ ruta.

Entonces estoy estudiandoESTA respuesta de desbordamiento de pila durante todo el día y no entiendo la lógica detrás del siguiente código y por qué funciona esta respuesta.

retozi respondió:

Configuré un proxy para lograr esto:

Tiene un servidor web express regular que sirve el index.html en cualquier ruta, excepto si es una ruta de activos. si es un activo, la solicitud se envía al servidor web-dev

sus puntos de entrada activos de reacción aún apuntarán directamente al servidor de desarrollo webpack, por lo que la recarga activa aún funciona.

Supongamos que ejecuta webpack-dev-server en 8081 y su proxy en 8080.

Mi código se ve así ahora, pero para que funcione, más tarde necesitaré implementarMarty-Express. Para implementar eso, primero debo entender la respuesta retonzis.

archivo express.js

requisitos

    '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');

apoderado

    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-Express ** **

Planeo usar eso justo después de entender este ejemplo, ESPERO que pase las rutas de reacción a express. **

    //app.use(require('marty-express')({
    //    routes: require('../routes'),
    //    application: require('../application').Application
    //}));

expresar cosas

    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].

los 2 servidores webpack-dev-server y express

        //----- 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);

¿Podría alguien ser tan amable de explicarme este concepto como si ayer hubiera bajado del planeta Marte?

No entiendo 2 cosas:

¿Por qué necesitamos un proxy?Cómo pasar rutas de reacción a express para que les sirva en cada ruta cuando se le solicite.(tal vezMarty-Express nos ayuda con esa tarea, pero supongo que podríamos hacerlo manualmente sin ella)

Bah ... ¡Ayúdame a salir de esta escasez de documentación, INFIERNO! y por favor sea generoso en su respuesta. Recuerde, ayer vine de Marte.

Gracias..!