gpt4 book ai didi

node.js - React Isomorphic 设置和 Node ES6 语法问题

转载 作者:搜寻专家 更新时间:2023-11-01 00:07:40 24 4
gpt4 key购买 nike

我在这里包含了两个问题,这两个问题将在本文末尾。

=================>>> 背景 <<<================ =

我正在尝试测试 react 同构方式,我设置了一个 server.js 并安装了以下 Node 模块

我的 Node 版本 Node :'0.12.0'

"babel": "^4.7.16",
"babel-core": "^4.7.16",
"babel-loader": "^4.2.0",
"babel-runtime": "^4.7.16",
"node-jsx": "^0.12.4",

以下是我的server.js(部分)

require("babel/register")({experimental: true});
require('node-jsx').install({extension:'.jsx'});

var express = require('express');
var server = express();
var port = process.env.PORT || 3000;

var React = require('react');
var EntryPointComponent = React.createFactory(require('./router.jsx'));

server.use(function(req, res, next) {
var component = EntryPointComponent();
var html = React.renderToString(component);
res.send(html);
});

server.listen(port);

下面是示例 routes.jsx(部分,它将包含在 router.jsx 中)

var React  = require('react'),
Router = require('react-router'),
{Route, NotFoundRoute} = Router,
App = require('./app'),
DefaultHandler = require('./pages/test');

module.exports = (
<Route handler={App}>
<Route name="test" handler={DefaultHandler} path="/test" addHandlerKey={true} />
<NotFoundRoute handler={DefaultHandler} />
</Route>
)

下面是router.jsx

var React  = require('react'),
Router = require('react-router'),
routes = require('./routes');


Router.run(routes, function(Handler) {
React.render(<Handler/>, document.getElementById("content"));
});

=================>>> 问题 <<<================ =

当我尝试运行以下命令时

node server.js --harmony

它会抛出意想不到的 token 问题

/blah/blah/blah/routes.jsx:3
{Route, NotFoundRoute} = Router,
^
SyntaxError: Unexpected token {

=================>>> 问题 <<<================ =

  1. 看起来 Node 无法识别 ES6 语法,我尝试包含“babel”,我使用正确吗?或者如何让 Node 理解 ES6 语法??

  2. 以上是设置同构 React 应用程序的正确方法吗?或者以同构方式设置 React 应用程序的正确/推荐方法是什么??

感谢任何建议,谢谢。

最佳答案

您正在使用“node-jsx”“覆盖”babel 加载器。 Docs .

//"there can be only one!" :)
require("babel/register")({experimental: true});

//to be removed
//require('node-jsx').install({extension:'.jsx'});

关于node.js - React Isomorphic 设置和 Node ES6 语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29186066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com