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

Sam*_*duc 9 ajax node.js express pug

我想将部分视图(用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>'
};
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?现在我可以像这样返回呈现的HTML:

res.render('employees', {layout: false});
Run Code Online (Sandbox Code Playgroud)

但是如何将它存储在变量中以返回更多数据,而无需进行更多的AJAX调用?

mr.*_*eze 23

在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);
});
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过res.app获取路线中的实例 (5认同)