如何从Express.js中的动态帮助函数中访问res.render()中设置的变量?

时间:2012-04-05 03:28:03

标签: javascript express

我正在尝试在Express.js中创建dynamicHelper。是否可以从dynamicHelper中访问res.render中设置的变量?特别是我希望能够访问变量'title'。我能想到的唯一选择是将我想要的数据附加到req或res对象,并从dynamicHelper中以这种方式访问​​它。但是,我想知道它是否已经可以通过其他方式访问?

以下代码显示了res.render()的当前结构。由于变量'title'是基于数据库调用的结果构建的,因此可以同样问一个如何从dynamicHelper中访问数据库查询结果的问题?

exports.viewContact = function(req, res) {
  var id = req.params.id;
  // Get document from DB.
  var Contact = mongoose.model('Contact');
  Contact.findOne({ _id: id}, function(err, results) {
    var breadcrumb = theme.breadcrumb({ path: url.parse(req.url).path, title: results.surname + ', ' + results.given_name });
    res.render('viewContact', {
      locals: {
        title: results.surname + ', ' + results.given_name,
        surname: results.surname,
        givenName: results.given_name,
        org: results.org,
        phones: results.phone,
        emails: results.email,
        addresses: results.address,
        breadcrumb: breadcrumb
      }
    });
  });
};

1 个答案:

答案 0 :(得分:0)

不,不可能在其他功能中访问局部变量。