В настоящее время у меня есть все мои модели (определения схемы) в файле /models/models.js для моего приложения Mongoose/NodeJS.Структура файла проекта 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» *
Мысли.?
Я написал модуль мангуста-клей, который помогает структурировать ваши модели мангуста: https: // github.com/xpepermint/mongoose-glue – xpepermint