使用express.js中的Pug-Jade将内容附加到已呈现的页面

时间:2016-08-05 14:33:33

标签: javascript jquery node.js express pug

我使用Pug / Jade模板在express.js中呈现我的内容。我想在客户端创建无限滚动。当用户按下按钮时,我是否可以通过ajax调用使用Pug / Jade文件将更多内容附加到同一页面?

我知道可以在客户端返回结果并将其呈现在那里,但我问是否可以在服务器端。

这样的事情:

cliend-index.js

    $('#load-more').click(function() {
        $.ajax({
            type: 'POST',
            url: '/get_more_posts',
            dataType: 'json',
            data: {
                last_received_id: last_received_id
            },
            success: function() {
                // do nothing as the content rendered on the server side
            },
            error: function() {
               // generate an error
            }

        });
    });

断绝-app.js

app.post('/get_more_posts', function(req, res) {
    db.select_post({
        last_received_id: req.body.last_received_id
    }, function(query_res) {
        res.render('more-posts', {
            _POST_LIST: helper.prepare_posts_for_rendering(query_res)
        });
    });
});

在render方法中使用的文件 more-posts 之上,需要将数据附加到 index.pug 这是我的索引文件。

我是否使用了一些块?是否可以呈现html并将内容返回给客户端,所以最后我会使用JQuery附加它?

2 个答案:

答案 0 :(得分:1)

好的,这很傻。我想做的就是将数据从:018 > time = Time.now()返回到变量并将此变量发送回ajax调用。

所以最后我使用了这样的东西:

=> 2016-08-05 17:57:26 +0300

并在ajax中处理它。

答案 1 :(得分:0)

假设您从服务器返回部分HTML,那么您所遗忘的就是将其附加到客户端。因此,如果您想将其添加到元素#more-data

success: function(data) {
  $('#more-data').html(data);
}