我开始了解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函数可能是什么样的?
答案 0 :(得分:13)
http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache是一篇很棒的小文章,其中包含使用dirfferent Node模块的MVC模式的完整github示例。它还列出了当前可用的备用模块。它对我来说比http://howtonode.org/更好地回答了这个问题。{{3}}有一些好的但我在MVC上找不到任何东西。
答案 1 :(得分:0)
最简单的方法是使用expressjs,它是Node的MVC框架。 Node就是它所说的,为网络提供了I / O.
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
答案 2 :(得分:0)
TowerJS是一个基于
的流行MVC框架答案 3 :(得分:-1)
RailwayJS是一个MVC框架,用基于ExpressJS的JavaScript编写,运行在nodeJS平台上。它受Ruby on Rails框架的启发。你可以在这里阅读关于RailwayJS的MVC架构:http://jsmantras.com/blog/RailwayJS-Routing