Entendendo o TodoMVC

Começando a aprender node.js e backbone.js e estou usando o exemplo TodoMVC como meu guia. Há algumas partes que estou tendo dificuldade em envolver minha cabeça. Ver abaixo.

Aqui está 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");

Heres é ./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);

Andy finalmente, aqui está ./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));

Então, minha pergunta é: como está o modelo 'Todo' em mongoose.model ('Todo') no módulo de rotas disponível neste escopo? Vejo que o módulo models está exportando mongoose.model ('Todo', TodoSchema); então eu tenho que acreditar que é como o módulo de rotas tem acesso a ele, mas eu não sei porque. o que estou perdendo? Tenho a sensação de que isso não é uma compreensão completa do escopo nessa situação. Além disso, não tenho certeza do raciocínio de ter as rotas funcionando anônimas.

Muito Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion