2012-01-16 8 views
4

Express(node.js)用のテンプレートエンジンは、Mustacheに基づいているか、それと同様の構文を使用していますか?Expressのための口ひげ(のような)テンプレートエンジン?

haml,jade,ejs,jquery templatesであり、CoffeeScript(I write plain JS)に基づくものである。

私は "普通"のhtmlを書いていますので、ejsjqtplだけが適合します。私はすでにあなたがすでにstacheを試してみましたので、それはまたのNode.js

+0

Hogan.jsは、アプリジェネレータを表現するためにちょうど-hフラグを指定するためのひげそりラッパーです。 –

答えて

5

はおそらくthe Express manualに従うことによって、レンダリングエンジンとして口ひげを追加することができます。..もはや維持されていますが、いくつかのリンクをたどると、より最近のものを得ることができます:「」

ビューファイル名は形をとります、どこに必要なモジュールの名前>かを指定します。たとえば、layout.ejsビューはviewシステムに> require( 'ejs')と指示し、ロードされるモジュールはメソッドexports.compile(str、> options)をエクスポートし、Expressに準拠する関数を返さなければなりません。

編集:使用下the Mustache manualから :

以下

がmustache.jsの使用方法を簡単な例である。この例では

var view = { 
    title: "Joe", 
    calc: function() { 
    return 2 + 4; 
    } 
}; 

var output = Mustache.render("{{title}} spends {{calc}}", view); 

、Mustache.render関数は2つのパラメータをとります:1)ひげそり>テンプレートと2)>テンプレートをレンダリングするのに必要なデータとコードを含むビューオブジェクト。

上記から、あなたはMustache.renderをエクスポートすることができると思われますが、私はそれをテストしていません。データとして使用されるオブジェクトリテラルは同じように見えますが、それらが異なる場合は、おそらくMustache.renderを正しくフォーマットする関数にラップすることができます。

編集:Xombyのラッパーリンクには、エクスプレス用にハンドルバーをラップする方法の例が含まれています.Mustacheは似ているはずです。

1

とサーバー側でそれを使用するのがベストでしょうbackbonemustacheを使うのか?それは

1

Handlebars.jsは、Mustacheテンプレートシステム/言語の拡張です。

Expressと一緒に使用するのはとても簡単なwrapperです。

1

確かに、これを行うための最善の方法はここにポストされています。これまでのところ、これは私のために素晴らしい仕事をしている

http://iamtherockstar.com/blog/2011/11/21/using-mustache-templates-express-apps/

。私が見つけた唯一の問題は、ビューのルートパスでパーシャルを使用していないことです。例えば、view/partials内のpartials - エンジンは、デフォルトでは、partialsをviewとしてのみ検索します。もしあなたがそれを理解すれば教えてください!

+0

デッドリンク。郵便番号。 – canon

4

は、私はそれがTwitterやLinkedInのは、生産に使用するものだと思いますHogan.js http://twitter.github.com/hogan.js/

を試してみてください。ここで

2

はNodeJS、ExpressJSとMustacheJSテンプレートエンジンを使用しての作業例/チュートリアルです:

http://devcrapshoot.com/javascript/nodejs-expressjs-and-mustachejs-template-engine

通常どおりのようにあなたが好きmustacheJSフィールドを配置し、完全なWebページを構築することができます。 expressを使用してページにルーティングし、ノードfs.readFileSync()を使用します。 htmlファイルを取得するには、ヒゲを使用してページのデータを更新し、それをクライアントに吐き出します。

これはちょっとです。私はそれが助けて欲しい!

-A-

3

ジャストエクスプレス3(http://expressjs.com/faq.html参照)の下に「正しい」方法であると思われ、この古代のスレッドにつまずいたが、誰もconsolidate.jsを言及していません。また、テンプレートシステムの切り替え/実験も簡単に行えます。

ここに簡単な例を示します。http://invitingthebell.com/2012/12/24/mustache-templates-in-express-3-0/それが消えた場合に

コードは、次のとおりです。ビューディレクトリ内

var express = require('express') 
, cons = require('consolidate') 
, app = express(); 

// assign the mustache engine to .html files 
app.engine('html', cons.mustache); 

// set .html as the default extension 
app.set('view engine', 'html'); 

app.set('views', __dirname + '/views'); 

// test mustache 
app.get('/', function(req, res){ 
    var viewdata = { 'test' : 'Hey now.'}; 
    res.render('index', viewdata); 
}); 

app.listen(3000); 

index.htmlファイル:

<html> 
    <head><title>Some CMS</title></head> 
    <body> 
    <h1>Mustache</h1> 
    <p>What do you say?</p> 
    <p>{{test}}</p> 
    </body> 
</html> 
0

チェックアウトHandlerbars。 "ハンドルバーは、意味のあるテンプレートを効果的に構築するのに必要な力を提供します。 ハンドルバーは、マスタステンプレートとほぼ互換性があります。ほとんどの場合、ハンドルバーを使用してMustacheを交換し、現在のテンプレートを使用することができます。 here " - Handlebars

関連する問題