将视图渲染到 ExpressJS 中的变量中(用于 AJAX 响应)
Posted
技术标签:
【中文标题】将视图渲染到 ExpressJS 中的变量中(用于 AJAX 响应)【英文标题】:Render view into a variable in ExpressJS (for AJAX response) 【发布时间】:2013-08-06 14:40:49 【问题描述】:我想将部分视图的内容(用 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 调用呢?
【问题讨论】:
【参考方案1】:在 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);
);
【讨论】:
似乎就是我要找的东西!但是有没有办法在不必传递整个app
参数的情况下做到这一点?上面的代码在 routes.js 文件中,我不确定如何使用/传递 app
那里...
你可以通过res.app在你的路由中获取一个实例
完美运行!非常感谢!以上是关于将视图渲染到 ExpressJS 中的变量中(用于 AJAX 响应)的主要内容,如果未能解决你的问题,请参考以下文章
ExpressJS 3.0 如何将 res.locals 传递给玉视图?
异步和递归目录扫描,用于 Nodejs 和 Expressjs 中的文件列表
如何将 ASP.NET 视图模型中的 JSON 保存到 JavaScript 变量中?