React router参数化路由:SyntaxError:expected expression,got'<'

时间:2016-04-01 00:01:13

标签: javascript node.js express react-router

我有一个使用参数化路由的React-router设置:

<Route path="/comments" comments={comments.commentsArray} component={NewReactElement} />
    <Route path="/comments/:id" component={Comment} />

错误:SyntaxError: expected expression, got '<'

我已经研究过这个错误,发现当服务器试图获取.js / .css / other文件时会发生这种情况,但是以<!DOCTYPE>开头的HTML返回,所以我设置了{ {1}},但在输入express.static等网址时,仍然会返回:comments/1250。这是我的服务器设置:

SyntaxError: expected expression, got '<'

我也尝试过:

app.use(express.static(__dirname + '/views/webpacked'));
app.listen(5000);

app.get('*', (req, res) => {

    res.sendFile(path.resolve(__dirname, 'views', 'webpacked', 'index.html'));

 });

但它也不起作用。

提前感谢您的建议。

2 个答案:

答案 0 :(得分:9)

我有一个反应/反应路由器页面没有任何表达并得到相同的错误: SyntaxError: expected expression, got '<'一旦我配置了反应路由,然后只是根/,它就开始出现了。

经过一些实验后,我发现在我的index.html中有一个指向js文件的链接:

  <script src="bundle.js"></script>
</body>
</html>

因此,解决方案是在源路径中添加/

  <script src="/bundle.js"></script>
</body>
</html>

并且错误消失了。

希望能有所帮助。

答案 1 :(得分:0)

/ 添加到 bundle.js 作为 this answer suggested 后,问题仍然存在。

根据此 github issue,我能够通过在我的项目目录中运行 rm -rf .cache 来解决该问题。