Понимание примера TodoMVC

Начинаю изучать node.js и backbone.js и использую пример TodoMVC в качестве руководства. Есть пара деталей, у меня возникли проблемы с оборачиванием головы. Увидеть ниже.

Вот app.js.

var express = require('express')
  , http = require('http')
  , mongoose = require('mongoose')
  , models = require('./models')
  , routes = require('./routes')
  , app = express();

app.configure(function () {
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(require('stylus').middleware({ src: __dirname + '/public' }));
  app.use(express.static(__dirname + '/public'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
});

app.configure('development', function () {
  app.use(express.errorHandler());
});

routes.init(app);


mongoose.connect("127.0.0.1", "todomvc", 27017);

http.createServer(app).listen(3000);

console.log("Express server listening on port 3000");

Вот это ./models:

var mongoose = require('mongoose'),

  TodoSchema = new mongoose.Schema({
    title: { 'type': String, 'default': 'empty todo...' },
    order: { 'type': Number },
    done: { 'type': Boolean, 'default': false }
  });

module.exports = mongoose.model('Todo', TodoSchema);

Энди, наконец, вот ./routes:

(function (exports) {

  "use strict";

  var mongoose = require('mongoose')
    , crudUtils = require('../utils/crudUtils')
    , Todo = mongoose.model('Todo');

  function index(req, res) {
    res.render('index', { 'title': 'Backbone.js, Node.js, MongoDB Todos' });
  }

  exports.init = function (app) {
    app.get('/', index);
    crudUtils.initRoutesForModel({ 'app': app, 'model': Todo });
  };

}(exports));

Итак, мой вопрос, какСделать' модель в mongoose.model ('Сделать') в модуле маршрутов доступны в этой области? Я вижу, что модуль models экспортирует mongoose.model ('Сделать', TodoSchema); поэтому я должен верить, что именно так модуль маршрутов имеет к нему доступ, но я нене знаю почему. Что мне не хватает? У меня есть ощущение, что это просто не полное понимание масштабов в этой ситуации. Кроме того, я не уверен в причинах анонимности функции маршрутов.

Большое спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос