2012-04-10 9 views
3

私はNode.jsを新しく習得しようとしています。私が理解していることから、テンプレートエンジン(例えばJade)を使用するのは一般的で、CSS(例えばスタイラス)でもそうです。正直言って、私がそこで見たチュートリアルはレイアウトに関してはテンプレートエンジンを含んでいます。テンプレートエンジンのないNode.js

不必要に複雑だと思うので、テンプレートエンジンを使いたくないということです。

Hereは、ノード用の定型句へのリンクです(残念ながら、何らかの理由でうまくいきません)。しかし、オプション1では、レイアウトにテンプレートエンジンを使用しないでください。

Node.jsとMongodbを「通常の」HTML(5)と組み合わせる最も簡単な方法は何ですか?ノードでHMTL5ボイラープレートを使用することは可能ですか?

答えて

3

急行使用して、あなただけ反応してHTML5を送信します:

app.get('/', function(req, res){ 
    res.send('<header>Hello World</header>'); 
}); 

しかし、私はほとんどの場合、テンプレートエンジンは、複雑さを追加しないと言うでしょう。動的コンテンツをレンダリングしている場合は、懸念の分離により簡単になります。

+0

私は応答の中にすべてのhtml5を埋め込む必要がありますか?それが唯一の方法ですか?私は、サーバーコードをクライアントコードから分離することが可能であることを期待していました。 – holyredbeard

+3

これはテンプレートエンジンのためのものです) – DanS

9

スタティックhtmlを使用している場合は、サーバー側でテンプレート化する必要はありません。 あなたは簡単に、たとえば、Express/Connect static middlewareであなたのhtmlファイルを提供することができます

app.use(express.static(__dirname + '/public')); 

は、パブリックフォルダへindex.htmlを置きます。

また、h5bp全体をコピーしてパブリックフォルダに貼り付けることができると思います。

2

私自身の質問に初めて答える。私はちょうど私がhtmlからjade(テンプレートエンジン)へのコンバーターを見つけたことを共有したいと思う。これは間違いなく、少なくともテンプレートエンジンを含んでいても、少なくとも私にとっては複雑さを取り除く良いことです。ここで

http://html2jade.aaron-powell.com/

+0

翡翠のドキュメントを見てください:http://jade-lang.com/ 構文を学ぶのに時間がかかりません。 – DanS

3

この上の私の考えです。

あなただけ静的 HTMLを提供している場合、それはあなたがちょうど応答でHTMLをバッファリングすることができるので、任意のテンプレートエンジンを必要とする、またはConnect静的なミドルウェアを使用していないことは明らかです。

ダイナミックのコンテンツを処理する必要がある場合は、面白いことがあります。

テンプレートエンジンは、HTMLとデータを統合する方法を提供するため、テンプレートエンジンが優れています。テンプレートエンジンを置き換える場合は、HTMLとDOMの操作ができるライブラリが必要です。

  • jsdom、および(例えばfill.jsなど)その上に構築されたライブラリ:私は2つの選択肢を考えることができます。
    jsdomを使用すると、サーバーサイドのjQueryを使用してビューを構築することもできます。YUIも作成できます。
    は、しかし、それはいくつかの欠点があります。
    • それはだ
    • それは私はそれがHTMLフラグメントまたは不完全なHTMLを解析するために得ることができませんでした
    • ネイティブモジュールに依存しているため、それをWindowsにインストールするには苦痛だ(多分遅いと面倒誰かが第二の代替がいっぱいDOMなしで、HTMLを扱ういくつかの軽量ライブラリを使用することであろう

  • )これを回避する方法を知っています。 - セレクタ
  • plates様のjQueryに依存している小さなライブラリ -
をマークアップするためにデータをバインドするライブラリ
  • cheerio:これまでのところ私はこれが得意な2つのLIBSのを見つけました

    私の意見ではどちらもきちんとしていて、テンプレートを取り除くには良い出発点です:)
    私が気付いていない人がいるかもしれませんが、あなたはそのアイデアを得るでしょう。

関連する問題