如何处理多个路由匹配的快速路由?

时间:2017-06-30 20:14:57

标签: node.js express react-router http-proxy-middleware

我使用http-proxy-middleware设置了一个快速应用程序,但我在通过代理仅路由一部分请求时遇到问题。

以下是我的配置:

app.use(/\/.*-img/i, proxy({changeOrigin: true, logLevel: 'debug', target: 'http://ucassets.blob.core.windows.net'}));

app.get('*', (req, res) => {
    const location = req.url;
    const memoryHistory = createMemoryHistory(req.originalUrl);
    const store = configureStore(memoryHistory);
    const history = syncHistoryWithStore(memoryHistory, store);

    match({history, routes, location},
        (error, redirectLocation, renderProps) => {
            if (error) {
                res.status(500).send(error.message);
            } else if (redirectLocation) {
                res.redirect(302, redirectLocation.pathname + redirectLocation.search);
            } else if (renderProps) {
                /* render HTML and send code 200 */
            } else {
                res.status(404).send('Not Found?');
            }
        });
});

代理路由有时有效,有时会打印出“未找到?” 404结果。值得注意的是,我的react-router配置中没有与上面的代理路由匹配的路由。由于两条路线在技术上都与快速路线相匹配,我猜快递是随机选择执行哪条路线?

编辑:这是一个有问题的示例路线:

/user-img/bc070850-11c9-a79e-2881-9bd6cc04c3ca.jpg

0 个答案:

没有答案