このコードのどの部分がJadeテンプレート要素であり、JavaScript要素はどれですか?
-
25-10-2019 - |
質問
私が理解しているのは、Jadeテンプレートエンジンに独自のテンプレート要素があり、JavaScriptもサポートしていることです。しかし、次のコードでは、どれが非javaScriptコードであるかを区別できません(これは node.js + Express.js):
これはビューファイル(index.jade)です。
h1= title
#articles
- each article in articles
div.article
div.created_at= article.created_at
div.title
a(href="/blog/"+article._id.toHexString())!= article.title
div.body= article.body
これはサーバーファイル(app.js)です。
app.get('/', function(req, res){
articleProvider.findAll( function(error,docs){
res.render('index.jade', { locals: {
title: 'Blog',
articles:docs
}
});
})
});
誰かが私がこの混乱をクリアするのを手伝ってくれますか?
解決
Jade-lang readme があります コード クライアント側のJavaScriptではないものについて詳しく説明するセクション。
基本的に、テンプレート内でコードを使用し、スクリプトタグ内にない場合、ブラウザに送信する前にそのJavaScriptの出力をレンダリングします。まだJavaScriptですが、サーバー側に実行されています。スクリプトタグ内のJavaScriptは、通常のJavaScriptであり、他のすべてと同様にブラウザに送信されます。
投稿した例については、行:
- each article in articles
翻訳:
for (var article in articles) {
/* Whatever else is going on in the template */
}
また:
a(href="/blog/"+article._id.toHexString())!= article.title
翻訳(単純化)
"<a href=\"/blog\"" + article._id.toHexString() + ">" + /* Escaped article.title */ + "</a>"
しかし、ジェイドは、ブラウザに送信される前に結果を解析し、レンダリングします。
所属していません StackOverflow