1

express3.xでは、APIはapp.render('view'、data、callback);について話します。res.renderと同じことを行うことになっていますが、応答として送信するのではなく、レンダリングされたデータを使用したコールバックを使用します。ルートファイルでapp.renderを使用する方法はありますか?アプリ変数はどこにも存在しないため、それは不可能ですが、app.jsには、テンプレートをレンダリングして変数を保存する他の簡単な方法があるかもしれません。HTMLメールを送信するために必要です。アプリでhogan.jsテンプレートを使用しています。

ありがとう

4

2 に答える 2

1

必要なときにアプリが渡されるようにルートとモジュールを作成できます

module.exports = function (app) {
  return {
    'index': function(req, res, next) {
      // app is avail here 
    }
  }
}

それに応じてそれを要求し、app.jsでapp変数を渡します

var app = module.exports = express.createServer();
var validate = require('./routes/validate')(app);

これは標準的な方法ではない可能性があり、特にルートファイルの書き込み方法が厄介な場合があります。しかし、それはアプリを利用可能にします。あなたのルートに。

于 2012-10-21T17:48:19.877 に答える
0

これを行う別の方法は、テンプレートエンジンを直接呼び出すことです。たとえば、consolidateでHogan.jsを使用する場合はのように実行できます。

var hogan = require('consolidate').hogan;

hogan(path_to_template or string, rendering_values, function(err, result) {
  console.log(result);
});

これは、より直接的であるため、app.renderを使用するよりも優れていると思います。

于 2012-11-23T15:49:38.580 に答える