ajax - 将 View 渲染到 ExpressJS 中的变量中(用于 AJAX 响应)

标签 ajax node.js express pug

我想将部分 View 的内容(用 Jade 编写)加载到 Bootstrap 模式对话框中。为此,我使用 AJAX 调用。我可以只返回生成的 HTML 并将其加载到模式中,但是我需要与呈现的 View 一起处理其他数据。 我希望能够返回这样的对象(解析为 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使用回调来渲染 View 并获取 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);
});

关于ajax - 将 View 渲染到 ExpressJS 中的变量中(用于 AJAX 响应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18065812/

相关文章:

javascript - $.ajax 对比 $.post 对比 $.get 对比 $.load

javascript - Jquery ajax facebox

javascript - 从 html 数据获取并替换 img src 值

javascript - 如何使用随机字符串作为路由参数(ExpressJS)

javascript - 获取返回的 Mongoose 查找对象

javascript - 在 Django 中做 ajax 的更好方法

ajax - html.ts 文件在我的 moovweb 项目中运行了两次

node.js - 哈皮斯 : Performance tuning for lots of concurrent requests

node.js - 如何使用 Stripe 防止重复收费?

node.js - 使用 body-parser 和 Express 从请求中读取 png 图像