在我的NodeJS应用程序的路由器中,我想渲染一个反应应用程序。由于它没有被浏览(并且在那里被重新生成),它在构建时返回unexpected token <
错误。我发现如果我require("node-jsx").install()
它不会返回我这个错误。 但node-jsx
已弃用。有没有什么方法可以在不需要的情况下构建项目?摆脱node-jsx
var JSX = require('node-jsx').install(),//as we don't reactify it while building
React = require('react'),
Board = React.createFactory(require('../components/board')),
DataStore = require('../store/store');
var router = require('express').Router();
router.get('/', function(req, res) {
var initialState = {'users': DataStore.getUsers()};
var markup = React.renderToString(
Board(initialState)
);
res.render('board', {
markup: markup,
state: JSON.stringify(initialState),
layout: 'boardLayout'
});
});
module.exports = router;
如果您的主板组件位于jsx中,则需要将其转换为js,然后才能通过反应进行呈现。董事会是一个jsx文件? – Mark
是的,实际上它是一个jsx文件,但带有'.js'扩展名。 –