2011-06-21 10 views
1

Node.jsのAPIで初めて作業していましたが、もちろんテストページが必要でしたので、Nodeでも同様に取り上げることにしましたそれの地獄のために。Node.jsのExpressとJadeでの再帰的なページの組み立て

ヘッダ、ボディとフッタのファイル(ヒスイ構文ファイル)をロードして友人にして一緒にレンダリングする良い方法を思いつき、私は再帰的な解決策を考案しました。

function assemblePage(name,markup) 
{ 
    markup = markup || ''; 
    if (markup=='') 
     fs.readFile('header.jade', function(err,data){assemblePage(name,markup+data)}); 
    else if (name != 'footer') 
     fs.readFile(name+'.jade', function(err,data){assemblePage('footer',markup+data)}); 
    else 
     fs.readFile('footer.jade', function(err,data){console.log(markup+data);__res.send(jade.render(markup+data))}); 
} 

だから私は呼び出す必要があり、すべては次のようになります。これは、物事を行くための最善の方法

assemblePage('home'); 

ですか?

+2

これは再帰を伴う非同期の良い例ですが、より良い方法は、Expressにレイアウトと部分的な処理をさせることです。 http://expressjs.com/guide.html#view-rendering – generalhenry

+0

入力いただきありがとうございます。ビューパーシャルは、行く方法です。 –

答えて

3

テンプレートをレンダリングするには、expressjs(Node.jsの高性能、高級Web開発)を使用する必要があります。 非常に洗練されたView Renderingがあります。あなたが必要とするものはview partialsと呼ばれています。 screencastsセクションでは、スクリーンキャストを見ることができますview partials

+1

これは完璧です、スクリーンキャストをリンクしていただきありがとうございます。 –

+0

ビューパーシャルはあなたを助けました... – Alfred

関連する問題