25

Tôi bắt đầu nhận được đầu xung quanh node.js, và tôi đang cố gắng tìm ra cách tôi sẽ làm công cụ MVC bình thường. Ví dụ, đây là một khung nhìn Django mà kéo hai bộ hồ sơ từ cơ sở dữ liệu, và gửi chúng được kết xuất trong một mẫu.Mã MVC giống như thế nào trong Node.js?

def view(request): 
    things1 = ThingsOne.objects.all() 
    things2 = ThingsTwo.objects.all() 
    render_to_response('template.html, {'things1': things1, 'things2': things2}) 

Chức năng node.js tương tự như thế nào?

+0

Tôi đã xuất bản một bài đăng trên blog về các công cụ tôi đã sử dụng để có được mẫu MVC vững chắc trong Node tại đây: http://www.travisglines.com/web-coding/a -simple-mvc-setup-in-node-js – Travis

+0

Tôi đã tìm thấy http://howtonode.org/ để được trợ giúp lớn trong việc giúp tôi tăng tốc. –

Trả lời

13

http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache là một bài viết nhỏ tuyệt vời với ví dụ về github đầy đủ của mẫu MVC bằng cách sử dụng mô-đun Nút dirfferent. Nó cũng liệt kê các mô-đun thay thế hiện có sẵn. Nó trả lời câu hỏi này cho tôi tốt hơn so với http://howtonode.org/ trong đó có một số tuts tốt nhưng tôi không thể tìm thấy bất cứ điều gì trên MVC ở đó.

+1

Kho Github được cung cấp trên blog (boldr.net tôi có nghĩa là) đã chết. Nếu bạn có câu trả lời mới nhất cho câu hỏi này, bạn có thể chia sẻ câu trả lời đó với chúng tôi không? – scaryguy

0

Cách dễ nhất để làm điều này là với expressjs, là một khung MVC cho Nút. Nút chỉ là những gì nó nói, đã xảy ra I/O cho web.

Ví dụ trên http://expressjs.com sẽ giúp bạn giải quyết các vấn đề cơ bản nhưng trả lời trực tiếp câu hỏi của bạn.

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 
+6

Có thể sử dụng Express cùng với những thứ khác để tạo một khung MVC, nhưng Express là ** not ** "một khung MVC cho Node". – callum

-1

RailwayJS là một khuôn khổ MVC, viết bằng JavaScript dựa trên ExpressJS và chạy trên nền tảng nodeJS. Nó được lấy cảm hứng từ framework Ruby on Rails. Bạn có thể đọc về kiến ​​trúc MVC của RailwayJS tại đây: http://jsmantras.com/blog/RailwayJS-Routing

Các vấn đề liên quan