Express通配符GET中断路由到React应用程序

时间:2016-12-16 22:06:14

标签: javascript node.js reactjs express webpack

我正在从这个React-Webpack样板库回购(https://github.com/wallacyyy/webpack-heroku/blob/master/server.js)开始开发我的项目。一切都按预期工作但现在,我想在我的React应用程序中实现路由,为此,我必须将以前的文件(server.js)修改为以下内容:

而不是:

app.get('/', function (_, res) { res.sendFile(indexPath) })

我用:

app.get('*', function (_, res) { res.sendFile(indexPath) }) 

一旦我做了这个更改,一切都会中断,React应用程序不再渲染。我唯一得到的是浏览器中的错误:bundle.js:1 Uncaught SyntaxError: Unexpected token <如果我尝试查看bundle.js的内容,我会收到index.html的内容。

知道为什么express的通配符路由会破坏React应用程序吗?

1 个答案:

答案 0 :(得分:0)

根据this commentwebpack-hot-middleware配置需要在*处理程序之前,因此它可以匹配路径。在找到这些信息后,修复非常简单,我在GET处理程序之前移动了webpack-hot-middleware的配置。