سؤال

لقد بدأت في الحصول على رأسي حول 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 مماثلة؟

هل كانت مفيدة؟

المحلول

http://boldr.net/mvc-stack-node-js-ejsgi-scylla-mustache هي مقالة صغيرة رائعة مع مثال GitHub كامل لنمط MVC باستخدام وحدات العقدة dirfferent. كما يسرد وحدات بديلة متوفرة حاليًا. أجاب على هذا السؤال بالنسبة لي أفضل من http://howtonode.org/ التي لديها بعض التوتات الجيدة ولكن لم أتمكن من العثور على أي شيء على MVC هناك.

نصائح أخرى

أسهل طريقة للقيام بذلك هي مع ExpressJS ، وهو إطار MVC للعقدة. العقدة هي فقط ما تقوله ، أحداث 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

TowerJS هو إطار MVC شهير يعتمد على

  • MongoDB (قاعدة البيانات)
  • ريديس (وظائف الخلفية)
  • قهوة
  • القلم
  • ياسمين (اختبارات)
  • jQuery

موقع http://towerjs.org/

مصدر https://github.com/viatropos/tower

RailwayJS هو إطار MVC ، مكتوب في JavaScript يعتمد على ExpressJs ويعمل على منصة NodeJS. إنها مستوحاة من إطار Ruby on Rails. يمكنك أن تقرأ عن MVC Architecture of RailwayJS هنا: http://jsmantras.com/blog/Railwayjs-Routing

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top