2012-07-06 15 views
7

Sto cercando un consiglio soggettivo (e so che potrebbe chiudersi), ma voglio essere in grado di separare percorsi e controller in un progetto node.js quindi ho alcune domande :Utilizzo di controller e percorsi separati in Node.js

  • È inutile provare e la filosofia node.js ha file JS meno numerosi?
  • Desidero poter richiedere ("routing") e collegare tutti i miei percorsi al modulo richiesto per i miei controller. Posso farlo facilmente se metto tutto in index.js ma sembra strano. Sto già facendo la separazione di stile app.get("/" controllers.index);, ma mi sto bloccando a costruire un modulo che include solo tutti i file JS in un altro modulo. Mi sto perdendo qualcosa?
  • O forse c'è uno stile node.js completamente diverso per farlo e sto provando a mappare troppo profondamente la mia conoscenza su ASP.NET MVC?
+0

Prova un peso leggero espresso flatiron MVC https://github.com/pksunkara/bullet/tree/master/es / –

risposta

7

Se si voleva ottenere tutto in un unico file, si potrebbe provare qualcosa di simile, il quale ad ogni file in ./routes/ e chiama la funzione esportata a ciascuno con app come parametro:

// routing.js 

var fs = require('fs'); 

module.exports = function(app) { 
    fs.readdirSync(__dirname + '/routes/').forEach(function(name) { 
    var route = require('./routes/' + name); 
    route(app); 
    }); 
} 

// routes/index.js 

module.exports = function(app) { 
    app.get('/something', function(req, res) { ... }); 
    app.get('/something/else', function(req, res) { ... }); 
} 

// routes/pages.js 

module.exports = function(app) { 
    app.get('/pages/first', function(req, res) { ... }); 
    app.get('/pages/second', function(req, res) { ... }); 
} 

// server.js 

var app = express.createServer(); 
require('./routing')(app); // require the function from routing.js and pass in app 

Ci sono anche alcuni esempi interessanti nella directory Express 'example su GitHub, come ad esempio an MVC-based one che implementa RESTful route molto simili a Rails.

Problemi correlati