0

我正在尝试了解 react-dom/server。

我有一个反应应用程序,使用 express 作为服务器。

我有一条这样的快速路线:

var server = app.listen(3000);
app.get('/test', (req, res) => {                       
  const context = {}
  const html = ReactDOMServer.renderToString(
      <h1>foo</h1>
  )  
  if (context.url) {
    res.writeHead(302, {
      Location: context.url
    })
    res.end()
  } else {
    res.write(html)
    res.end()
  }
});

如果我使用 运行服务器文件node app-server,我会收到此错误:

      <h1>adasd</h1>
      ^
SyntaxError: Unexpected token <

我根据那里的示例将 JSX 传递给 renderToString: https ://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/StaticRouter.md

如何使快速服务器文件处理此 JSX 代码?

对于客户端,我使用带有 babel loader 的 webpack,它运行良好。

4

1 回答 1

0

感谢@azium。

解决方案是首先使用 babel-cli 转换 ES6/JSX 文件。

我使用了这个babel-cli 命令

npx babel --no-babelrc script.js --out-file script-compiled.js --presets=es2015,react

npx用于“执行 npm 包二进制文件”

于 2018-05-02T12:53:50.390 回答