使用Swig模板,React和Express进行服务器端渲染

问题描述 投票:1回答:1

这是我使用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渲染我编写的组件?

express reactjs render server-side swig-template
1个回答
0
投票

您是否尝试过{{ homepage.toString() }} ? 我认为这样可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.