2012-04-05 10 views
1

私はExpress.jsでdynamicHelperを作成しようとしています。 dynamicHelper内からres.renderで設定された変数にアクセスすることは可能ですか?特に私は変数 'title'にアクセスできるようにしたい。私が考えることができる唯一のオプションは、私が必要とするデータをreqオブジェクトまたはresオブジェクトのいずれかにアタッチし、そのようにdynamicHelperからアクセスすることでした。しかし、すでに他の方法でアクセスできるかどうか疑問に思っていましたか?Express.jsの動的ヘルパー関数内からres.render()に設定された変数にアクセスするにはどうすればよいですか?

次のコードは、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 
     } 
    }); 
    }); 
}; 

答えて

0

いいえ、他の機能のローカル変数にアクセスすることはできません。

+0

迅速な対応をありがとう。私はそれが混乱を引き起こすかもしれないことを恐れているので、私は私の質問に言い直しました。私の質問では、プログラミングの意味ではなく、res.render()に渡される 'locals'オブジェクトに付随する変数に、「ローカル変数」を指すのではありません。 – Benjen

関連する問題