25

Sto iniziando a girare la testa su node.js, e sto cercando di capire come farei le normali cose MVC. Ad esempio, ecco una vista di Django che estrae due serie di record dal database e li invia a essere visualizzati in un modello.Come funziona il codice simile a MVC in Node.js?

def view(request): 
    things1 = ThingsOne.objects.all() 
    things2 = ThingsTwo.objects.all() 
    render_to_response('template.html, {'things1': things1, 'things2': things2}) 

Che aspetto potrebbe avere una funzione simile di node.js?

+0

Ho pubblicato un post sul blog sugli strumenti che ho usato per ottenere un pattern MVC solido andando in Nodo qui: http://www.travisglines.com/web-coding/a -simple-mvc-setup-in-node-js – Travis

+0

Ho trovato http://howtonode.org/ come un grande aiuto per aggiornarmi. –

risposta

13

http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache è un piccolo grande articolo con un esempio completo di gitHub di un pattern MVC che utilizza i moduli Node dirfferent. Elenca anche i moduli alternativi attualmente disponibili. Ha risposto a questa domanda per me meglio di http://howtonode.org/ che ha alcuni buoni tuts ma non ho trovato nulla su MVC lì.

+1

Il repository Github fornito sul blog (boldr.net intendo) è morto. Se ti capita di avere una risposta più aggiornata per questa domanda, puoi condividerla con noi, per favore? – scaryguy

0

Il modo più semplice per farlo è con expressjs, che è un framework MVC per Node. Il nodo è proprio quello che dice, l'I/O che si è verificato per il web.

L'esempio sullo http://expressjs.com dovrebbe aiutare con le nozioni di base, ma per rispondere direttamente alla domanda.

var express = require('express'); 

var app = express.createServer(); 

app.get('/whatever', function(req, res) { 

    Things1.objects.getAll(function(things1) { 
    Things2.objects.getAll(function(things2) { 
     var options = { locals: { things1: things1, things2: things2 }}; 
     res.render('thingstemplate.ejs', options); // or thingstemplate.jade or whatever 
    }); 
    }); 
}); 

app.listen('80', ''); // port and optional hostname to bind 
+6

È possibile utilizzare Express insieme ad altre cose per creare un framework MVC, ma Express è ** non ** "un framework MVC per nodo". – callum

-1

RailwayJS è un framework MVC, scritto in JavaScript sulla base di ExpressJS e corre sopra la piattaforma nodeJS. È ispirato al framework Ruby on Rails. Puoi leggere l'architettura MVC di RailwayJS qui: http://jsmantras.com/blog/RailwayJS-Routing