在express.js中将内容追加到Pug-Jade已经呈现的页面

我使用Pug / Jade模板在express.js中呈现我的内容。 我想在客户端创build一个无限的滚动。 当用户按下一个button,我可以通过ajax调用追加更多的内容使用帕格/玉文件在同一页面?

我知道,可以返回客户端的结果,并在那里呈现,但我问,如果有可能在服务器端。

像这样的东西:

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?

好吧,这很愚蠢。 我所要做的就是将res.render()的数据返回给一个variables,并将这个variables返回给ajax调用。

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

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

并在阿贾克斯处理。

假设你从服务器返回部分html,你所缺less的就是把它附加到客户端。 所以如果你想把它添加到一个元素#more-data

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