我正在尝试理解react-dom/server。
我有一个react应用程序,使用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
如何使express服务器文件处理此JSX代码?
对于客户端,我使用带有babel加载器的webpack,它工作得很好。
发布于 2018-05-02 20:53:50
感谢@azium。
解决方案是首先使用babel-cli转换ES6/JSX文件。
我使用了这个babel-cli command:
npx babel --no-babelrc script.js --out-file script-compiled.js --presets=es2015,reactnpx 用于“执行npm包二进制文件”
https://stackoverflow.com/questions/50121687
复制相似问题