Файловая структура проекта Mongoose и NodeJS

В настоящее время у меня есть все мои модели (определения схем) в файле /models/models.js для моего приложения Mongoose / NodeJS.

Я хотел бы разбить их на разные файлы как таковые: user_account.js, profile.js и т. Д. Однако я не могу этого сделать, так как мои контроллеры ломаются и отчитываются » не может найти модуль "как только я разделю эти классы.

Моя структура проекта следующая:

/MyProject
  /controllers
    user.js
    foo.js
    bar.js
    // ... etc, etc
  /models
    models.js
  server.js

Содержимое моего файла models.js выглядит следующим образом:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

mongoose.connect('mongodb://localhost/mydb');

var UserAccount = new Schema({
    user_name       : { type: String, required: true, lowercase: true, trim: true, index: { unique: true } }, 
    password        : { type: String, required: true },
    date_created    : { type: Date, required: true, default: Date.now }
}); 

var Product = new Schema({
    upc             : { type: String, required: true, index: { unique: true } },
    description     : { type: String, trim: true },
    size_weight     : { type: String, trim: true }
});

Мой файл user.js (контроллер) выглядит так:

var mongoose    = require('mongoose'), 
    UserAccount = mongoose.model('user_account', UserAccount);

exports.create = function(req, res, next) {

    var username = req.body.username; 
    var password = req.body.password;

    // Do epic sh...what?! :)
}

Как я могу нарушить определение схемы в несколько файлов, а также ссылаться на него с моего контроллера? Когда я на нее ссылаюсь (после того, как схема находится в новом файле), я получаю следующую ошибку:

* Ошибка: схема не была зарегистрирована для модели "user_account". *

Мысли?

59
задан Donn Felker 10 February 2012 в 16:15
поделиться