Pergunta

Estou começando a entender o Node.js e estou tentando descobrir como faria coisas normais do MVC. Por exemplo, aqui está uma visão do Django que puxa dois conjuntos de registros do banco de dados e os envia para serem renderizados em um modelo.

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

Como seria uma função Node.js semelhante?

Foi útil?

Solução

http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache é um ótimo pequeno artigo com um exemplo completo de Github de um padrão MVC usando módulos de nó Dirfferent. Ele também lista módulos alternativos atualmente disponíveis. Ele respondeu a esta pergunta para mim melhor do que http://howtonode.org/ que tem alguns bons tuts, mas não consegui encontrar nada no MVC lá.

Outras dicas

A maneira mais fácil de fazer isso é com o ExpressJS, que é uma estrutura MVC para o nó. O nó é exatamente o que diz, com E/S, para a web.

O exemplo no http://expressjs.com Deve ajudar no básico, mas para responder diretamente à sua pergunta.

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

Towerjs é uma estrutura popular do MVC baseada em

  • MongoDB (banco de dados)
  • Redis (trabalho de fundo)
  • CoffeeScript
  • Caneta
  • Jasmim (testes)
  • jQuery

Local http://towerjs.org/

Fonte https://github.com/viatropos/tower

A RailwayJS é uma estrutura MVC, escrita em JavaScript baseada em expressjs e executa sobre a plataforma NodeJS. É inspirado no Ruby on Rails Framework. Você pode ler sobre a arquitetura do MVC de ferrovias aqui: http://jsmantras.com/blog/railwayjs-routing

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top