Erreur côté serveur de React-router

J’essaie de rendre mon application Web isomorphe côté client. J’obtiens ceci comme motif: routage client (en utilisant react-router) et routage côté serveur

Voici ce que j’ai.

server.js:

var React = require('react'), express = require('express'), Router = require('react-router'), routes = require('./src/js/main'), path = require('path'), app = express(), port = 5555, bodyParser = require('body-parser'); // Make sure to include the JSX transstackr require("node-jsx").install(); // Include static assets. Not advised for production app.use(express.static(path.join(__dirname, 'dist'))); // Set view path app.set('views', path.join(__dirname, 'views')); // set up ejs for templating. You can use whatever app.set('view engine', 'ejs'); // ...express config... app.use(function(req, res, next) { var router = Router.create({location: req.url, routes: routes}) router.run(function(Handler, state) { var reactHtml = React.renderToSsortingng() return res.render('index.ejs', {reactOutput: reactHtml}) }) }) app.listen(port); console.log('Server is Up and Running at Port : ' + port); 

main.js:

 var React = require('react'); var Router = require('react-router'); var Route = Router.Route; var RouteHandler = Router.RouteHandler; var Link = Router.Link; var APPLICATION_ID = '', SECRET_KEY = '', VERSION = 'v1'; //default application version; Backendless.initApp(APPLICATION_ID, SECRET_KEY, VERSION); // wrapper APP = require('./components/app').APP; // pages var Frontpage = require('./components/frontpage/app-frontpage'); // homepage var NewEstate = require('./components/new-estate/app-newestate'); var NewEstateDetails = require('./components/new-estate/app-newestatedetails'); var Contacts = require('./components/static/app-contacts'); var About = require('./components/static/app-about'); var SecondEstate = require('./components/second-estate/app-secondestate'); var SecondEstateDetails = require('./components/second-estate/app-secondestatedetails'); var CommerceEstate = require('./components/commerce-estate/app-commerceestate'); var CommerceEstateDetails = require('./components/commerce-estate/app-commerceestatedetails'); var routes = (            ); Router.run(routes, function (Handler) { React.render(, document.getElementById('main')); }); 

et index.ejs:

     Балкит - Агентство недвижимости     

J’essaie de lancer server.js et d’obtenir cette erreur:

 //web/react-balkit/server.js:28 var reactHtml = React.renderToSsortingng() ^ SyntaxError: Unexpected token < at Module._compile (module.js:439:25) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:935:3 

J’ai essayé de le réparer, mais je m’éloigne de la tendance et de plus en plus d’erreurs.

La ligne require("node-jsx").install(); insère un middleware qui transforme n’importe quel JSX en JS vanille.

Cependant, vous avez besoin d’un fichier avec la syntaxe JSX avant de l’ inclure. Comme pour tout middleware, l’ordre est important.

Pour réparer, insérez-les à l’envers:

require("node-jsx").install(); routes = require('./src/js/main')

EDIT: Ajout pour le serveur

Vous pouvez créer une usine pour utiliser JS standard.

 app.use(function(req, res, next) { var router = Router.create({location: req.url, routes: routes}) router.run(function(Handler, state) { var Element = React.createFactory(Handler); var reactHtml = React.renderToSsortingng(Element()); return res.render('index.ejs', {reactOutput: reactHtml}) }); });