javascript - react 路由器参数化路由 : SyntaxError: expected expression, 得到 '<'

标签 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 文件时发生的,但返回的 HTML 以 <!DOCTYPE> 开头。相反,所以我设置了 express.static , 但在输入 URL 时,例如 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'));

 });

我也试过:

app.use('/*/*', express.static(...));

但是也没用。

提前感谢您的建议。

最佳答案

我有一个 react/react-router 页面没有任何 express 并且得到了同样的错误: SyntaxError: expected expression, got '<'一旦我配置了一个 react 路由而不是 root /,它就开始出现了.

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

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

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

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

错误消失了。

希望对您有所帮助。

关于javascript - react 路由器参数化路由 : SyntaxError: expected expression, 得到 '<',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36345851/

相关文章:

javascript - 在 Drupal 8 中需要选择框

javascript - 关于在 AWS NodeJS 上使用 TypeScript。 (获取 TS 而不是 JS 的堆栈跟踪)

javascript - if 语句的 js 变量定义

node.js - 需要对属于一篇文章的多个评论做关系 MongoDB

javascript - 克隆并显示表格

php - node.js中是否有与ignore_user_abort()相同的php函数?

node.js - 带有 Jasmine Node 的 Travis-CI

node.js - RailJS 与 TowerJS

javascript - 使用 app.get(..) 路由后 Express JS 'this' 未定义

node.js - 使用 node/express 显示 BASE64 视频