25

Estoy comenzando a entender node.js, y estoy tratando de descubrir cómo haría las cosas normales de MVC. Por ejemplo, aquí hay una vista de Django que extrae dos conjuntos de registros de la base de datos y los envía para representarlos en una plantilla.¿Cómo funcionaría el código MVC en Node.js?

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

¿Qué aspecto podría tener una función node.js similar?

+0

Publiqué una entrada de blog sobre las herramientas que utilicé para obtener un patrón de MVC sólido en Nodo aquí: http://www.travisglines.com/web-coding/a -simple-mvc-setup-in-node-js – Travis

+0

He encontrado http://howtonode.org/ de gran ayuda para ponerme al día. –

Respuesta

13

http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache es un gran artículo pequeño con un ejemplo completo de github de un patrón MVC que utiliza módulos de nodo dirfferent. También enumera los módulos alternativos actualmente disponibles. Me respondió esta pregunta mejor que http://howtonode.org/, que tiene algunos buenos resultados, pero no pude encontrar nada en MVC allí.

+1

El repositorio de Github dado en el blog (me refiero a boldr.net) está muerto. Si tiene una respuesta más actualizada para esta pregunta, ¿puede compartirla con nosotros, por favor? – scaryguy

0

La forma más fácil de hacerlo es con expressjs, que es un framework MVC para Node. Nodo es justo lo que dice, evented E/S para la web.

El ejemplo en el http://expressjs.com debe ayudar con los conceptos básicos, pero para responder a su pregunta directamente.

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

Es posible usar Express junto con otras cosas para crear un marco MVC, pero Express es ** no ** "un marco MVC para Nodo". – callum

-1

RailwayJS es un framework MVC, escrito en JavaScript basado en ExpressJS y corre sobre la plataforma nodejs. Está inspirado en el marco de Ruby on Rails. Puede leer sobre la arquitectura MVC de RailwayJS aquí: http://jsmantras.com/blog/RailwayJS-Routing

Cuestiones relacionadas