繁体   English   中英

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

[英]How to access variables set in res.render() from within a dynamic helper function in Express.js?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM