如何使用hogan-express在Node.JS中呈现页面

时间:2016-06-02 10:31:22

标签: node.js express hogan.js

如何在节点中渲染页面(使用路由器),只是将值传递给模板引擎供我使用?

例如(这是真正的代码):

var apiRouter = express.Router();

 apiRouter.get('/myPosts', function(req, res){
    userPostsModel.findOne({'profileID':req.session.facebookProfileId}, function(err, userPosts) {
            if(userPosts) {
                res.json({
                    posts       :   userPosts.posts
            });
            } else {
                console.log('You do not have any posts');
            }
        })
})

模板引擎部分(html文件):

<!doctype html>
<head>
    <meta charset="UTF-8">
    <title>My Posts</title>
</head>
<body>
    <p><a href="/post?id={{posts.[0].postID}}">Post 1</a></p>
    <p><a href="/post?id={{posts.[1].postID}}">Post 2</a></p>
</body>
</html>

我希望这能够呈现页面,但相反,我得到了这个(在网页上):

{"posts":["12345667"]}

对于我的模板引擎,我正在使用&#39; hogan-express&#39;,如下所示:

app.engine('html', require('hogan-express'));
app.set('view engine', 'html');

我知道res.json可能在这里错了,但我没有得到任何关于此的信息。节点和路由器的文档到处都是!

1 个答案:

答案 0 :(得分:0)

正如@Molda在下面的评论中回答的那样,它应该是这样的:

res.render('template-name', { posts:userPosts.posts});

尝试过并为我工作。