开始学习的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(“藤”)的“藤”的模式在这个范围内都有效? 我看到,该模型模块出口mongoose.model(“藤”,TodoSchema); 所以我不得不相信这是路由模块如何访问它,但我不知道为什么。 我在想什么? 我有一种感觉它真的不是一个完整的范围在这种情况下理解。 另外,我不知道有路由功能匿名的推理。
非常感谢!