这是我使用Express设置的路由器:
var r = require('rethinkdb');
var quotes = require('../model/quotes');
var user = require('../model/users');
var auth = require('../lib/auth');
var React=require('react');
var ReactDOMServer=require('react-dom/server')
var Homepage=React.createFactory(require('../component/index.js').Homepage);
module.exports = function(app, passport) {
app.get('/', function(req, res) {
if (req.user) {
res.redirect('/dashboard');
} else {
var HomepageHTML=ReactDOMServer.renderToString(Homepage({}));
res.render('index',{homepage:HomepageHTML});
}
});
}
在index.html
视图中,用Swig模板引擎编写:
{% extends 'main.html' %}
{% block title %}Homepage{% endblock %}
{% block body %}
{{homepage}}
{% endblock %}
它用标签而不是我用React创建的组件来渲染字符串,现在我该怎么做才能使Swig渲染我编写的组件?
您是否尝试过{{ homepage.toString() }}
? 我认为这样可以解决问题。