25

我开始了解 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 函数可能是什么样的?

4

4 回答 4

13

http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache是一篇很棒的小文章,其中包含使用不同节点模块的 MVC 模式的完整 github 示例。它还列出了当前可用的替代模块。它比http://howtonode.org/更好地为我回答了这个问题,http: //howtonode.org/ 有一些很好的 tuts 但我在 MVC 上找不到任何东西。

于 2011-03-06T11:15:43.010 回答
0

最简单的方法是使用 expressjs,它是 Node.js 的 MVC 框架。Node 就是它所说的,用于 web 的事件 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
于 2011-03-22T20:22:47.020 回答
0

TowerJS 是一个流行的 MVC 框架,基于

  • MongoDB(数据库)
  • Redis(后台作业)
  • 咖啡脚本
  • 手写笔
  • 茉莉花(测试)
  • jQuery

网站http://towerjs.org/

来源https://github.com/viatropos/tower

于 2012-05-15T06:31:44.447 回答
-1

RailwayJS 是一个 MVC 框架,基于 ExpressJS 用 Ja​​vaScript 编写,运行在 nodeJS 平台上。它的灵感来自 Ruby on Rails 框架。您可以在此处阅读有关 RailwayJS 的 MVC 架构:http: //jsmantras.com/blog/RailwayJS-Routing

于 2012-11-12T13:01:19.763 回答