类似MVC的代码如何在Node.js中运行?

时间:2010-02-01 19:56:03

标签: javascript model-view-controller server-side node.js serverside-javascript

我开始了解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 个答案:

答案 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框架
  • MongoDB(数据库)
  • Redis(后台工作)
  • 的CoffeeScript
  • 手写笔
  • Jasmine(测试)
  • 的jQuery

网站http://towerjs.org/

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

答案 3 :(得分:-1)

RailwayJS是一个MVC框架,用基于ExpressJS的JavaScript编写,运行在nodeJS平台上。它受Ruby on Rails框架的启发。你可以在这里阅读关于RailwayJS的MVC架构:http://jsmantras.com/blog/RailwayJS-Routing