1

我正在尝试在 Express.js 中创建一个 dynamicHelper。是否可以从 dynamicHelper 中访问 res.render 中设置的变量?特别是我希望能够访问变量“标题”。我能想到的唯一选择是将我想要的数据附加到 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
      }
    });
  });
};
4

1 回答 1

0

不,无法访问其他函数中的局部变量。

于 2012-04-05T03:39:50.827 回答