2.8 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5895f70bf9fc0f352b528e64 | テンプレートエンジンのパワーを活用する | 2 | 301567 | use-a-template-engines-powers |
--description--
テンプレートエンジンを使用する最大の利点の 1 つは、HTML にレンダーする前に変数をサーバーからテンプレートファイルに渡せることです。
Pug ファイルでは変数を使用することができます。それには、変数名を #{variable_name}
として参照し、要素上の他のテキストとともにインラインで記述します。または、要素に対して p=variable_name
のように空白を付けずに等号を使用します (この例では変数の値が p 要素のテキストに割り当てられます)。
Pug のシンタックスと構造については、こちらの GitHub README をぜひご覧してください。 Pug は、空白とタブを使用してネストされた要素を示し、少ないコード量で美しいサイトを作成することを目標としています。
プロジェクトに含まれている pug ファイル「index.pug」では、変数 title と message を使用しました。
これらをサーバーから渡すには、res.render への 2 番目の引数として、変数とその値を持つオブジェクトを追加する必要があります。 たとえば、インデックスビューの変数を設定するために、{title: 'Hello', message: 'Please login'}
というオブジェクトを渡すことができます。
コードは res.render(process.cwd() + '/views/pug/index', {title: 'Hello', message: 'Please login'});
のようになります。これでページを更新すると、index.pug ファイルに配置されているビュー内の正しい場所に、これらの値がレンダーされるはずです!
正しいと思ったら、ページを送信してください。 エラーが発生している場合は、ここまでに完了したプロジェクトをこちらで確認できます。
--hints--
Pug で変数を正しくレンダーする必要があります。
(getUserInput) =>
$.get(getUserInput('url') + '/').then(
(data) => {
assert.match(
data,
/pug-variable("|')>Please login/gi,
'Your projects home page should now be rendered by pug with the projects .pug file unaltered'
);
},
(xhr) => {
throw new Error(xhr.statusText);
}
);
--solutions--
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/