1

私はExpressjsをいじっていて、毎回ビューのモデルに渡すのではなく、デフォルトのテンプレートからミドルウェアにページタイトルを抽出しようとしています。

デフォルトの index.jade テンプレート

h1= title

p Welcome to the #{title}

テンプレートからのデフォルト ルート

exports.index = function(req, res){
  res.render('index', { title: "Express" });
};

次のことを試みましたが、titleこれを行うと、Express から未定義であるというエラーが表示されます。

module.exports = function(req, res, next){
    res.title = 'Express';
    next();
}

これは明らかに些細な例ですが、各ルートの後に応答のモデルに何かを挿入したい時が来るので、それは私が理解しようとしているものでもあります. 私はそのようなことをする方法を理解できません。

ありがとう

4

1 に答える 1

2

デフォルトのヘルパーを使用する必要があります。ドキュメントを読んでください。簡単なスニペットを次に示します。

app.helpers({
    title: 'Express'
});
/* Now JADE sees your variable title
   without explicitly defining it
   in every view. */

ドキュメントの動的ヘルパーも参照してください。reqこれらは変数にリンクできresます (通常のヘルパーはリクエスト/レスポンスに依存しません)。

于 2012-06-27T15:35:34.763 に答える