2011-06-21 3 views
1

J'ai travaillé sur une API dans Node.js pour la première fois, et bien sûr, j'avais besoin d'une page de test, j'ai donc décidé d'en ajouter une dans Node. pour l'enfer. Après m'être donné la peine de trouver un bon moyen de charger les fichiers d'en-tête, de corps et de pied de page (fichiers de syntaxe Jade) et de les rendre amis et rendre ensemble, j'ai trouvé une solution récursive.Assemblage de page récursive dans Node.js avec Express et 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))}); 
} 

Tout ce que je dois appeler est:

assemblePage('home'); 

Est-ce la meilleure façon de faire les choses?

+2

c'est un bon exemple d'async avec récursion, mais la meilleure façon de faire est de laisser Express gérer le layout et les partiels. http://expressjs.com/guide.html#view-rendering – generalhenry

+0

Merci pour votre contribution! On dirait que voir partials est la voie à suivre. –

Répondre

3

Je pense que vous devriez utiliser expressjs (Développement Web de haute performance et de haute qualité pour Node.js) pour rendre vos modèles. Il a un très sophistiqué View Rendering. Je pense que ce dont vous avez besoin est appelé view partials. Dans la section screencasts, vous pouvez regarder un screencast à propos de view partials

+1

Ceci est parfait, merci de relier le screencast. –

+0

Super que vue partials vous a aidé ... – Alfred

Questions connexes