Как будет работать MVC-код в Node.js?
Вопрос
Я начинаю получать голову вокруг Node.js, и я пытаюсь выяснить, как я буду делать нормальные материалы MVC. Например, вот вид Django, который тянет два набора записей из базы данных и отправляет их для отображения в шаблоне.
def view(request):
things1 = ThingsOne.objects.all()
things2 = ThingsTwo.objects.all()
render_to_response('template.html, {'things1': things1, 'things2': things2})
Как выглядит аналогичная функция Node.js?
Решение
http://boldr.net/mvc-stack-node-js-ejsgi-Scylla-mustache. Это отличная маленькая статья с полным примером GitHub шаблоном MVC с использованием модулей узла Dirfferent. Он также перечисляет альтернативные модули, доступные в настоящее время. Это ответил на этот вопрос для меня лучше, чем http://howtonode.org/ У кого есть некоторые хорошие туты, но я не мог ничего найти на MVC.
Другие советы
Самый простой способ сделать это с Expressjs, который представляет собой MVC Framework для узла. Узел - это просто то, что он говорит, посопил ввод / вывод для сети.
Пример на http://expressjs.com. Должна помочь с основами, но чтобы ответить на ваш вопрос напрямую.
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
Townjs - популярный MVC Framework на основе
- Mongodb (база данных)
- Redis (фон рабочие места)
- CoffeeScript
- Стилус
- Жасмин (тесты)
- jquery
Сайт http://towerjs.org/
Источник https://github.com/viAropos/tower.
Railwayjs - это Framework MVC, написанная в JavaScript на основе ExpressJS и работает над платформой Nodejs. Он вдохновлен Ruby on Rails Framework. Вы можете прочитать о MVC Architecty of Railwayjs здесь: http://jsmantras.com/blog/railwayjs-raouting.