4

私は Node.js が初めてで、学習しようとしています。私が理解していることから、CSS (例: Stylus) であっても、テンプレート エンジン (例: Jade) を使用するのが一般的です。正直なところ、私が見たすべてのチュートリアルには、レイアウトに関してテンプレート エンジンが含まれています。

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

Node のボイラープレートへのリンクを次に示します (残念ながら何らかの理由で機能しません) が、オプション 1 ではレイアウトにテンプレート エンジンを使用しないでください。

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

4

4 に答える 4

9

静的 html を使用している場合は、サーバー側でテンプレートを作成する必要はありません。Express/Connect 静的ミドルウェアを使用して、html ファイルを簡単に提供できます。次に例を示します。

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

次にindex.html、パブリック フォルダーに配置します。

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

于 2012-04-10T09:33:35.573 に答える
4

これが私の考えです。

静的htmlのみを提供している場合は、応答で html をバッファリングするか、 Connect静的ミドルウェアを使用するだけでよいため、テンプレート エンジンが必要ないことは明らかです。

ただし、動的コンテンツを処理する必要がある場合は興味深いものになります。

テンプレート エンジンは、データを html と統合する方法を提供するため、この点で優れています。テンプレート エンジンを置き換える場合は、HTML および DOM 操作を実行できるライブラリが必要です。私は2つの選択肢を考えることができます:

  • jsdom、およびその上に構築されたライブラリ ( fill.jsなど)。
    jsdom を使用すると、サーバー側の jQuery を使用してビューやYUIを構築できます。
    ただし、いくつかの欠点があります。
    • それは遅くて面倒です
    • ネイティブ モジュールに依存するため、Windows にインストールするのは面倒です。
    • HTMLフラグメントまたは不完全なHTMLを解析できませんでした(誰かがこれを回避する方法を知っているかもしれません)

  • 2 番目の方法は、完全な DOM を使用せずに、html を処理するいくつかの軽量ライブラリを使用することです。これまでのところ、これに適した 2 つのライブラリを見つけました。
    • Cheerio - jQuery のようなセレクターに依存する小さなライブラリ
    • プレート- データをマークアップにバインドするライブラリ

私の意見では、どちらも非常に優れており、テンプレートを取り除くための良い出発点です:)
私が気付いていない他のものがあるかもしれませんが、あなたはその考えを理解します.

于 2012-04-11T21:09:42.373 に答える
3

Express を使用すると、応答で html5 を送信するだけです。

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

ただし、ほとんどの場合、テンプレート エンジンによって複雑さが増すことはないと思います。動的コンテンツをレンダリングする場合、関心の分離により物事が単純になります。

于 2012-04-10T09:36:26.860 に答える
2

First time answering my own question. I just want to share that I found a converter from html to jade (template engine). This is definitely a good thing that's removing a lot of complexity at least for me, even if it still involves a template engine.

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

于 2012-04-10T10:25:50.690 に答える