如何在res.render

时间:2017-05-31 04:31:25

标签: node.js express

如何在MEAN堆栈中的express中以res.render动态获取对象?

res.render('myTemplate', {title: 'This is my title'});

我想要这样的事情:

res.render('myTemplate', function(){
    var myReturnObject{title: 'This is my title'};
    //do someting to generate return object;
    return myReturnObject;
});

有人可以建议我如何在渲染功能中以编程方式生成模板变量?

感谢。

2 个答案:

答案 0 :(得分:0)

您可以将数据放入对象中,然后将其传递给res.render。

var myReturnObject = {title: 'This is my title'};
res.render('myTemplate', myReturnObject);

答案 1 :(得分:0)

您的res.render()来电将在控制器的上下文中生效。例如,它可能类似于(app.get('/', function(req, res) {});。通常,您需要获取一些数据,然后将获取的数据传递到res.render()回调中的模板。下面的代码段显示了您将如何操作这是一个查询数据库的虚构callToDb()函数:

app.get('/', function(req, res) {
  callToDB(function(err, results) {
    const templateVars = {//use results like you want here};
    res.render('path/to/template/, templateVars);
  });
});