将视图渲染到ExpressJS中的变量中(用于AJAX响应)



我想将部分视图(用Jade编写)的内容加载到Bootstrap模式对话框中。为此,我使用了AJAX调用。我只能返回生成的HTML并将其加载到模态中,但我需要处理渲染视图中的其他数据。我希望能够返回这样的对象(解析为JSON):

response = {
  some_data: 'blablabla',
  some_more_data: [5, 8, 10, 67],
  my_html: '<div>HTML rendered from the Jade template</div>'
};

有办法做到这一点吗?现在我可以返回如下所示的渲染HTML:

res.render('employees', {layout: false});

但是,我如何将它存储在一个变量中,以便在不需要进行更多AJAX调用的情况下返回更多数据呢?

在express中,您可以使用带有回调的app.render来呈现视图并获取html:

app.render('employees', {layout: false}, function(err, html){
  var response = {
    some_data: 'blablabla',
    some_more_data: [5, 8, 10, 67],
    my_html: html
  };
  res.send(response);
});

最新更新