- ルートレベルでapp.renderを呼び出し、ルート/ミドルウェア内でのみres.renderを呼び出すことができます。
-
app.render
res.render
に対して、常にコールバック関数でhtmlを返します。 これは、3番目のパラメーターとしてコールバック関数を指定した場合にのみ行われます。res.render
を呼び出す場合 3番目のパラメータ/コールバック関数がない場合、レンダリングされたhtmlはステータスコード200でクライアントに送信されます。
次の例を見てください。
app.render
app.render('index', {title: 'res vs app render'}, function(err, html) {
console.log(html)
});
res.render
3番目のパラメータなし
app.get('/render', function(req, res) {
res.render('index', {title: 'res vs app render'})
})
res.render
3番目のパラメータを使用
app.get('/render', function(req, res) {
res.render('index', {title: 'res vs app render'}, function(err, html) {
console.log(html);
res.send('done');
})
})
-
res.render
app.render
を使用します テンプレートファイルをレンダリングするために内部的に。 can't set headers
体に入ることができないことを意味します。-
res.render()
関数はテンプレートをコンパイルし(ejsは使用しないでください)、そこにローカルを挿入し、これら2つからhtml出力を作成します。
//ここでは、すべてのテンプレートが/views
に配置されるように設定します ディレクトリ
app.set('views', __dirname + '/views');
// here you set that you're using `ejs` template engine, and the
// default extension is `ejs`
app.set('view engine', 'ejs');
// here you render `local` template
response.render("local", {local: local_json});
したがって、テンプレートパスはviews/
です。 (最初の部分)+local
(2番目の部分)+ .ejs
(第3部)===views/local.ejs