Les partiels avec Node.js + Express + Hogan.js

Je suis le développement d'un site avec Node.js + Express et en utilisant comme moteur d'affichage Hogan.js.

C'est mon fichier app.js:

/**
 * Module dependencies.
 */

var express = require('express')
  , routes = require('./routes')
  , user = require('./routes/user')
  , http = require('http')
  , path = require('path');

var app = express();

app.configure(function(){
  app.set('port', process.env.PORT || 3000);
  app.set('views', __dirname + '/views');
  app.set('view engine', 'hjs');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('your secret here'));
  app.use(express.session());
  app.use(app.router);
  app.use(require('less-middleware')({ src: __dirname + '/public' }));
  app.use(express.static(path.join(__dirname, 'public')));
});

app.configure('development', function(){
  app.use(express.errorHandler());
});

app.get('/', routes.index);
app.get('/about', routes.about);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

Le fichier /routes/index.js est:

/*
 * GET pages.
 */

exports.index = function(req, res){
  res.render(
    'index',
    {
      title: 'Home Page',
      author: 'Bruce Wayne'
    }
  );
};

exports.about = function(req, res){
  res.render(
    'about',
    {
      title: 'About Page',
      author: 'Bruce Wayne'
    }
  );
};

Dans /views dossier, il y a:

|- part.hjs

|- index.hjs

|- cv.hjs

Le fichier part.hjs est:

<h3>Hello {{ author }}</h3>

Le fichier index.hjs est:

<h1>Title: {{ title }} </h1>
{{> part }}
Welcome to Gotham City.

Et le fichier about.hjs est:

<h1>Title: {{ title }}</h1>
{{> part }}
I'm not Joker.

J'ai deux questions:

  1. Comment puis-je utiliser correctement les partiels dans mes pages? (ce code ne fonctionne pas)
  2. Puis-je utiliser le même "titre" de deux pages ou plus, sans répéter les valeurs d'affectation dans le fichier /routes/index.js?

Cordialement, Vi.

  • Merci de poster cette question. Sheesh. googlé autour pour un peu, jusqu'à ce que je suis tombé sur ce petit bijou.
  • Je pense Oren réponse est la bonne pour cette question.
  • La version de express êtes-vous ici?
InformationsquelleAutor | 2012-10-08