Я использую React
для своего основного приложения, которое запускается после входа пользователя в систему. Перед входом пользователя у меня есть несколько страниц (вход, регистрация, ошибка, сброс пароля), которые находятся за пределами основного приложения.Для основного приложения я установил для движка вида:
app.engine('jsx', require('express-react-views').createEngine());
Итак, теперь установлен движок jsx
.Прямо сейчас я хочу иметь несколько шаблонов для имеющихся у меня страниц (вход в систему, ошибки и т. Д.) И хочу добавить им значения.Я пытался использовать jsx
, но почему-то это не работает, и я не знаю почему.Например, вот мое error.jsx
:
/** @jsx React.DOM */
var React = require('react');
class ErrorPage extends React.Component {
render() {
return (
<html>
<head>
<title>Error</title>
</head>
<div>
{this.props.error_message}
</div>
</html>
);
}
}
module.exports = ErrorPage;
Я хочу добавить его с помощью error_message
, например:
app.use(function(err, req, res, next) {
// set locals, only providing error in development
//res.locals.message = err.message;
//res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
var path = __dirname + '/public/error.jsx';
//res.sendFile(path);
res.render(path, {
error_message: err.message
});
});
Сейчас это не работает, давая мне
SyntaxError: неожиданный токен <</p>
Как можно использовать jsx
для отправки отдельных шаблонов или использовать другой шаблон представления рядом?Я пытался использовать handlebars
, но я не уверен, как заставить несколько движков просмотра работать одновременно.Было бы лучше, хотя бы просто приспособить jsx
для этой цели.Мое основное приложение React
работает, потому что я присоединяю его к корневому элементу DOM
и использую webpack configs
, но здесь я не могу этого сделать: я хочу отправить шаблон и просто вставить туда несколько параметров.