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 に答える