Entendiendo el ejemplo de TodoMVC

Comenzando a aprender node.js y backbone.js y estoy usando el ejemplo de TodoMVC como mi guía. Hay un par de partes que tengo problemas para envolver mi cabeza. Vea abajo.

Aquí 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 es ./modelos:

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, aquí está ./rutas:

(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));

Entonces, mi pregunta es, ¿cómo está el modelo 'Todo' en mongoose.model ('Todo') en el módulo de rutas disponible en este ámbito? Veo que el módulo de modelos está exportando mongoose.model ('Todo', TodoSchema); Así que tengo que creer que así es como el módulo de rutas tiene acceso a él, pero no sé por qué. ¿Qué me estoy perdiendo? Tengo la sensación de que no es una comprensión completa del alcance en esta situación. Además, no estoy seguro del razonamiento de que las rutas funcionen de forma anónima.

¡Muchas gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta