Как 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?
Ответы
Ответ 1
http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache - это отличная статья с полным примером github шаблона MVC с использованием dirfferent Node модулей. В нем также перечислены альтернативные модули, доступные в настоящее время. Он ответил на этот вопрос для меня лучше, чем http://howtonode.org/, который имеет некоторые хорошие проблемы, но я не смог найти что-либо на MVC там.
Ответ 2
Самый простой способ сделать это - с помощью expressjs, который представляет собой структуру MVC для Node. Node - это то, что он говорит, событие ввода/вывода для Интернета.
Пример 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
Ответ 3
TowerJS - популярная среда MVC, основанная на
- MongoDB (база данных)
- Redis (фоновые задания)
- CoffeeScript
- Stylus
- Жасмин (тесты)
- JQuery
Сайт http://towerjs.org/
Источник https://github.com/viatropos/tower
Ответ 4
RailwayJS - это структура MVC, написанная на JavaScript на основе ExpressJS и работающая над платформой nodeJS. Он вдохновлен каркасом Ruby on Rails. Вы можете прочитать о архитектуре MVC RailwayJS здесь: http://jsmantras.com/blog/RailwayJS-Routing